为什么当我尝试在laravel中下载PDF文件时,打开一个包含奇怪字符的文件?

TuGordoBello

我有以下代码可以在laravel中下载PDF

控制器

public function doDownload($id){

        $servicio = Servicio::find($id);
        $array = explode('/', $servicio->RutaPDF);
        $path = '/home/web-apps/marsur/public/servicio/'.$array[1].'/ordedeservicio.pdf'; //array[1] contain a number

        header("Content-Type: application/octet-stream");

        header("Content-Disposition: attachment; filename=" . urlencode($path));   
        header("Content-Type: application/octet-stream");
        header("Content-Type: application/download");
        header("Content-Description: File Transfer");            
        header("Content-Length: " . filesize($path));
        flush(); // this doesn't really matter.
        $fp = fopen($path, "r");
        while (!feof($fp))
        {
            echo fread($fp, 65536);
            flush(); // this is essential for large downloads
        } 
        fclose($fp); 
}

路线

Route::get('servicio/download/{id}', array('uses' => 'ServicioController@doDownload'));

当我Postman用来测试时,会出现

在此处输入图片说明

我该如何解决?

达米安·皮西(Damien Pirsy)

尝试为PDF使用特定的MIME类型:

header("Content-Type: application/pdf");

附带一提,您可以使用Laravel的downlod方法,该方法应该处理所有事情(它足够聪明,可以正确猜测MIME类型并提供正确的标题),而无需手动创建所有标题:

return Response::download($filePath, $fileClientName);

您也可以手动将标头指定为第3个参数,但是每次我使用此参数下载PDF时,它都立即起作用,因此没有必要。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

当我打开一个非常大的文件时,gedit 背景变成黑色

为什么在我的WebClient DownloadFileAsync方法中下载一个空文件?

当我尝试在另一个分区上打开pdf文件时,“无法加载torrent...。”

为什么不是打开一个文本文件给我想要的输出?

当我在 Nautilus 中打开一个文件夹时,所有文件都会重新排列

为什么当我打开一个文本文件时会这样说,“参数应该是整数或无,而不是‘str’”

当我打开一个文本文件时,它只读取最后一行

当尝试在C ++中读取文件时,我的文件被附加了一个奇怪的字符序列

当我打开一个二进制文件时 fwrite() 和 fread() 如何工作

为什么我的应用程序崩溃时,它试图打开一个文件,手机重启后?

当我尝试创建可绘制资源文件时,Android Studio给我一个奇怪的错误

打开一个名称包含空格的文件

打开一个包含变量名的文件

为什么在我每次运行Flutter Web应用程序时都打开一个dart文件?

当我尝试将WebView保存为PDF时,为什么NSPrintOperation创建一个空的PDF?

当我尝试从已安装的MicroSD卡中删除文件时,为什么会创建一个.Trash-1000隐藏文件夹?

为什么当我打开一个 ExpansionTile 时它会滚动到顶部?如何在所选项目上保持滚动

包含数组定义的代码在主函数中工作得很好,但是当我从一个单独的文件中包含它时却不能,为什么?

当我打开一个可以使用python创建另一个文件的批处理文件时,python会打开它,但不会创建该文件

我试图在 ubuntu 中打开一个 excel 文件,但它显示垃圾字符

当某个进程打开一个文件时, unlink() 会做什么?

当我启动意图ACTION_OPEN_DOCUMENT_TREE时,它会自动打开一个空的最近文件夹吗?

打开包含本机应用程序的某些文件时,为什么看到很多奇怪的字符

当我打开一个开关时,所有其他开关也打开

打开一个dbm文件

当我打开一个图像时,我在 Windows 的记事本中看到一种奇怪的语言

为什么文件(鹦鹉螺)会打开一个新窗口,尽管已经打开了?

当我有更好的规则时,为什么在我的lex文件中匹配最后一个规则?

每当我打开一个新窗口时,Bashrc需要重新启动