PHP Laravel实现文件下载功能
作者:axaaxaa 发布时间:2023-11-18 12:20:27
标签:php,laravel,下载
Laravel 的上一个 LTS(长期支持)版本是 Laravel 5.1,发布于 2015 年 6 月,按照对 LTS 版本的约定,两年的 bug 修复支持到今年中旬就结束了,所以今年中旬必然要出一个 LTS 后继版本,就是 Laravel 5.5。本文重点给大家介绍Laravel实现文件下载功能的实现方法,大家参考下本文吧
download 方法可以用于生成强制让用户的浏览器下载指定路径文件的响应。download 方法接受文件名称作为方法的第二个参数,此名称为用户下载文件时看见的文件名称。最后,你可以传递一个包含 HTTP 头信息的数组作为第三个参数传入该方法:
return response()->download($pathToFile);
return response()->download($pathToFile, $name, $headers);
以下是本人在项目里使用的文件下载功能。
public function downloadfile($filename)
{
$file = public_path().'/test.xls';
return response()->download($file,$filename.'.xls');
}
但是呢,刚开始进展不是很顺利,为什么使用laravel自带的文件下载功能会失败能,错误如下提示:
FatalErrorException in HandleCors.php line 18:
Call to undefined method Symfony\Component\HttpFoundation\BinaryFileResponse::header()
大概的意思就是说,header()方法没有被定义,经过各种摸索后找到了解决方案,我们可以重新定义一下header,在CorsMiddleware的handle方法中添加如下方法:
class CorsMiddleware
{
public function handle($request, Closure $next)
{
$response = $next($request);
$response->headers->set('Access-Control-Allow-Origin' , '*');
$response->headers->set('Access-Control-Allow-Methods', 'POST, GET, OPTIONS, PUT, DELETE');
$response->headers->set('Access-Control-Allow-Headers', 'Content-Type, Accept, Authorization, X-Requested-With, Application');
return $response;
}
}
最后,再重新定义完header之后,我们再使用download功能后发现能正常访问。
总结
以上所述是小编给大家介绍的PHP Laravel实现文件下载功能,希望对大家有所帮助.
来源:http://blog.csdn.net/lilian1131/article/details/77921501


猜你喜欢
- 在正文前,先简短介绍自己。我任职于广州的某个网站服务公司的系统开发员,主要任务是以.Net编写各种web系统,例如CMS.EIP。大家都知道
- 本文实例为大家分享了Django1.11自带分页器Django的具体使用方法,供大家参考,具体内容如下接下来我编写一个 views ,名cl
- 范围选区概述范围选区是一种常见的对象选择方式,在一个子图中,可以在某一个轴方向上用鼠标选择起始范围的数据,这个特性可用来实现数据缩放(dat
- 在pandas里,DataFrame是最经常用的数据结构,这里总结生成和添加数据的方法:①、把其他格式的数据整理到DataFrame中;②在
- 在我们学习和使用JavaScript的中,会经常使用到数组的去重,接下来的内容,来给大家分享一下,我们在开发过程中,常用到的数组去重方法,这
- 我就废话不多说了,大家还是直接看代码吧!database = [ { "name"
- 什么是fixture在一个测试过程中,fixture主要提供以下功能:为测试提供上下文,比如环境变量,数据集(dataset),提供数据,数
- 前言变量的作用域是指程序代码能够访问该变量的区域,如果超出该区域,再访问时就会出现错误。在程序中,一般会根据变量的 “有
- 将cdb_pms表subject字段中的Welcom to替换成 欢迎光临 UPDATE `cdb_pms` SET `subject` =
- 本文实例总结了PHP session会话操作技巧。分享给大家供大家参考,具体如下:会话技术session将会话数据存储与服务器端,同时使会话
- 前言今天给大家带来的是Vue 3 中的极致防抖/节流(含常见方式防抖/节流)这篇文章,文章中不仅会讲述原来使用的防抖或节流方式,还会带来新的
- 我想大多数的人在编写ASP程序的时候,都碰到过类似的错误信息: Error Number -> 
- 两种方法,一种是为表空间增加数据文件: alter tablespace users add datafile '/opt/orac
- 最近写一个爬虫系统,需要用到python的日志记录模块,于是便学习了一下。python的标准库里的日志系统从Python2.3开始支持。只要
- 注意:什么路径不可改就搜索该路径进行删除注册表记录,然后重启电脑按 win键盘+R输入 regedit 进去注册表,点击计算机按“编辑”--
- 对于金额的显示,大多情况下需要保留两位小数,比如下面的(表格采用 element-ui):在vue.js中,对文本的处理通常是通过设置一系列
- 这篇文章主要介绍了python如何获取apk的packagename和activity,文中通过示例代码介绍的非常详细,对大家的学习或者工作
- 1、git merge冲突了,根据提示找到冲突的文件,解决冲突如果文件有冲突,那么会有类似的标记2、修改完之后,执行git add 冲突文件
- gzip 是什么东东呢?百科跟我们说gzip是GNU zip的缩写,它是一个 GNU 自由软件的文件压缩程序。…gzip 的基础是 DEFL
- 如果一个模型里包含了ManyToManyField,在admin后台可能会显示成object,例如解决方法:在定义这个类的时候,加多一个函数