Cómo subir un PDF con Laravel 8

Para hacer upload de archivos pdf podemos usar copy, antes creamos un formulario y creamos el método para subir validando el archivo correspondiente.

Para hacer upload de archivos pdf podemos usar copy, antes creamos un formulario y creamos el método para subir validando el archivo correspondiente. 

¿Que Rutas debemos considerar para subir un pdf a nuestro servidor?

Básicamente dos rutas. la primera que permita llamar a un formulario , en este caso la ruta será /form de tipo get...Y la segunda ruta será post /guardar la cual invocará a un método llamado mguardar para procesar la subida y validación del archivo pdf


Route::get('/form', [App\Http\Controllers\PdfController::class, 'mform'])->name('form');
Route::post('/guardar', [App\Http\Controllers\PdfController::class, 'mguardar'])->name('guardar');

 

¿Cuáles son los métodos del Controlador PdfController a tener en cuenta?

Para nuestra aplicación web, crearemos un controlador exclusivamente para gestionar tanto la ruta get como post respectivamente.

El primer método llamado mform

  • solo nos retorna la vista tambien llamada mform,

El segundo método mguardar :

  • Recibe el request del formulario,
  • Verifica si realmente es un archivo con hasFile
  • Luego almacena en una variable $file toda la información o data del archivo a subir
  • En la variable nombre creamos un nombre nuevo con la misma extensión del archivo a subir
  • En la variable $ruta formamos la ruta completa a la cual será copiado el archivo pdf. 
  • Hacemos una comparación para ver si la extensión corresponde a un archivo pdf si es asi procedemos a copiar el archivo con la función copy y caso contrario pues ejecutamos la función dd que en este caso detiene la ejecución del flujo de la aplicación para mostrar un mensaje.
<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;

class PdfController extends Controller
{
    public function mform(){
        return view('mform');
    }

    public function mguardar(Request $request){
        if($request->hasFile("urlpdf")){
            $file=$request->file("urlpdf");
            
            $nombre = "pdf_".time().".".$file->guessExtension();

            $ruta = public_path("pdf/".$nombre);

            if($file->guessExtension()=="pdf"){
                copy($file, $ruta);
            }else{
                dd("NO ES UN PDF");
            }



        }
    }
}

 

¿Qué atributos debe tener el formulario para subir un archivo con PHP?

Vista o view a implementar con el formulario

@extends('layouts.app')

@section('content')
<div class="container">
    <div class="row justify-content-center">
        <div class="col-md-8">
          
            <form action="/guardar" method="post" enctype="multipart/form-data" >
                @csrf
                <input type="file" name="urlpdf" >
                <input type="submit" value="subir">
            </form>
   
        </div>
    </div>
</div>
@endsection

Podemos apreciar que:

  • El formulario tiene el action para ir a ruta post
  • El formulario tiene el atributo method con el valor post
  • El formulario tiene el atributo enctype con el valor multipart/form-data
  • Habilitamos el token de Laravel para el formulario
  • declaramos un input de tipo file con el atributo name urlpdf
  • finalmente invocamos un input de tipo submit para subir el pdf.

 

 


Leido 14269 veces

Descarga el código fuente Laravel

Cómo subir un PDF con Laravel 8

Debe registrarse para descargar

Descargar Código Fuente

Compartir enlace del tutorial

Aprende más sobre Laravel

Cursos de programación

Codea Codea App

México, Colombia, España, Venezuela, Argentina, Bolivia, Perú

© Todos los derechos reservados Codea App | ...de frente al código!!! | 2020 - 2023