Inicio » Blog » Laravel

3 marzo, 2021

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.

Suscríbete a nuestro canal en Youtube

Suscríbirse

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 15809 veces

Descarga el código fuente Laravel

Recurso descargado 54 veces

USD

Descargar Código Fuente

Compartir link del tutorial con tus amigos


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