Contamos con el resultado a esta duda, al menos eso deseamos. Si continuas con alguna duda coméntalo, para nosotros será un placer ayudarte
Solución:
Prueba esto.
public function getDownload()
//PDF file is stored under project/public/download/info.pdf
$file= public_path(). "/download/info.pdf";
$headers = array(
'Content-Type: application/pdf',
);
return Response::download($file, 'filename.pdf', $headers);
"./download/info.pdf"
no funcionará ya que tienes que dar la ruta física completa.
Actualización 20/05/2016
Los usuarios de Laravel 5, 5.1, 5.2 o 5.* pueden usar el siguiente método en lugar de Response
fachada. Sin embargo, mi respuesta anterior funcionará tanto para Laravel 4 o 5. (el $header
array cambio de estructura a asociativo array =>
– los dos puntos después de que se eliminó ‘Content-Type’ – si no hacemos esos cambios, los encabezados se agregarán de manera incorrecta: el nombre del encabezado será un número que comienza desde 0,1,…)
$headers = [
'Content-Type' => 'application/pdf',
];
return response()->download($file, 'filename.pdf', $headers);
Las descargas de archivos son súper sencillas en Laravel 5.
Como mencionó @Ashwani, Laravel 5 permite la descarga de archivos con response()->download()
para devolver el archivo para su descarga. Ya no necesitamos meternos con ningún encabezado. Para devolver un archivo simplemente:
return response()->download(public_path('file_path/from_public_dir.pdf'));
desde dentro del controlador.
Ruta/controlador de descarga reutilizable
Ahora hagamos una ruta y un controlador de descarga de archivos reutilizables para que podamos servir cualquier archivo en nuestro public/files
directorio.
Crea el controlador:
php artisan make:controller --plain DownloadsController
Crea la ruta en app/Http/routes.php
:
Route::get('/download/file', '[email protected]');
Hacer método de descarga en app/Http/Controllers/DownloadsController
:
class DownloadsController extends Controller
public function download($file_name)
$file_path = public_path('files/'.$file_name);
return response()->download($file_path);
Ahora simplemente suelte algunos archivos en el public/files
directorio y puede servirlos mediante un enlace a /download/filename.ext
:
File Name // update to your own "filename.ext"
Si ingresó el paquete Html de Laravel Collective, puede usar la fachada Html:
!! Html::link('download/filename.ext', 'File Name') !!
En la respuesta aceptada, para Laravel 4 los encabezados array está construido incorrectamente. Usar:
$headers = array(
'Content-Type' => 'application/pdf',
);
Eres capaz de añadir valor a nuestra información asistiendo con tu experiencia en las explicaciones.