laravel上传文件到s3,打开链接无法下载而是直接在浏览器中显示内容
问题描述:用laravel写了一个上传csv文件到s3的功能,在本地运行正常,但是到了测试环境却无法将上传成功后返回的s3链接直接下载,而是在浏览器中直接显示csv文件内容:
原代码:
Storage::disk('s3FileUpload')->put($path, file_get_contents(stream_get_meta_data($temp)['uri']), 'public');
改动后代码:(增加ContentType=> binary/octet-stream)
Storage::disk('s3FileUpload')->put($path, file_get_contents(stream_get_meta_data($temp)['uri']), ['visibility' => 'public','ContentType' => 'binary/octet-stream'
]);
完整代码:
$temp = tmpfile();$queryList = $request->input();$ids = $request->get('ids', []);//检索数据$products = Product::select('test')->when(!empty($ids), function ($query) use ($ids) {return $query->whereIn('id', $ids);}, function ($query) use ($queryList) {if (empty($queryList)) {return $query->whereRaw('1=0');}return $query->applyFilter($queryList);})->orderBy('id', 'desc')->get()->toArray();if(empty($products)){return $this->responseError('products list is empty');}$productsExportList = $this->getProductsExportList($products);foreach ($productsExportList as $data) {fputcsv($temp, $data);}$path = 'labels/'.date("Y/m/d/"). uniqid('', true) . '.csv';Storage::disk('s3')->put($path, file_get_contents(stream_get_meta_data($temp)['uri']), ['visibility' => 'public','ContentType' => 'binary/octet-stream']);fclose($temp);$url = Storage::disk('s3')->url($path);return $this->responseSuccess(["url" => $url], "success");
laravel上传文件到s3,打开链接无法下载而是直接在浏览器中显示内容相关推荐
- laravel 上传文件的方式汇总
目录 一.上传文件的方法 1.上传到指定驱动和根目录 2.上传到站点目录,通过移动文件方式上传 二.上传文件的例子 1.注册路由 2.添加模型类 (1)产生模型 (2)模型属性 3.控制器方法 4.表 ...
- laravel上传文件报错:413 Request Entity Too Large
上传图片的时候,是用laravel自带的上传图片的方法,一下气上传了20张,结果就无情报错: 413 Request Entity Too Large,后面查一下,这个报错信息是nginx报的错误,不 ...
- php上传文件到七牛云源码,laravel上传文件到七牛云存储
public function store(Request $request) { $file = $request->file('photo') ; if(!$file->isValid ...
- 华为服务器上传文件后怎么通过链接查看,远程服务器文件上传后的操作
远程服务器文件上传后的操作 内容精选 换一换 本节指导您基于Linux操作系统环境完成镜像文件快速导入,推荐使用云平台的EulerOS云服务器作为转换镜像格式和生成位表文件的环境.Linux操作系统环 ...
- aws cli 上传文件到s3命令_使用 AWS CLI 分段上传到 Amazon S3
如何使用 AWS CLI 将文件分段上传到 Amazon S3? 上次更新时间:2020 年 11 月 10 日 我想将一个大文件作为多个部分或使用分段上传复制到 Amazon Simple Stor ...
- Java 实现上传文件到FTP和从FTP下载文件
在eclipse 中创建项目,并将commons-net-3.6.jar包复制到项目中 commons-net-3.6.jar:链接:https://pan.baidu.com/s/1iz0862TX ...
- 使用scp上传文件到服务器或从服务器下载文件(支持跨越跳板机)
转载 原文链接 原贴写的很好,我转载懒得排版了 scp是什么? 使用man scp可以看到scp的解释『scp - secure copy (remote file copy program)』,sc ...
- vue php 文件上传,使用vue.js和laravel上传文件
我尝试在vue.js和laravel中上传pdf文件,files_array是这样定义的:data(){ return { formData: new Form ({ files_array:'', ...
- AWS 获取AccessKey和密钥,上传文件到s3
1,获取Accesskey和secret 打开AWS的网页,右上角那里,我的账户下面,切换角色上面,我的安全凭证 ,点击进去就会得到如下页面,然后创建访问密钥,就可以了,保存起来,或者下载下来,因为 ...
- AWS EC2上传文件到S3(python boto)
1.获得所有存储桶 >>>import boto.s3.connection >>>conn=boto.s3.connect_to_region('cn-north ...
最新文章
- Cissp-【第3章 安全工程】-2021-2-20(248页-268页)
- [Luogu] P4198 楼房重建
- Laravel框架中Validor中错误信息$error的输出
- Session id的存储
- java 混码_kotlin java 混合代码 maven 打包实现
- bootstrap table 列拖动变宽
- robot 用AP连PC
- Github版本控制——基础操作
- rapidxml对unicode的支持
- Python:hashlib加密,flask模块写接口
- 浏览器的NPAPI插件技术不要学了,已经淘汰几年了
- mysql5.7备份
- 65nm工艺下MOM电容详解与蒙特卡洛仿真及calibre xRC
- Linux 如何查看文件夹的大小(du、df、ls、find)
- 移动硬盘只显示盘符,拒绝访问解决方法
- MySQL 常用命令汇总
- 第29课:来自未来的简历
- 云片短信平台java案例,Java使用云片网API发送短信验证码
- win8.1下安装vc6
- Java中就什么是映射的简单理解
热门文章
- java 解析xml报文解析_开源分布式中间件 DBLE Server.xml 配置解析
- spark 通过打散热点key解决数据倾斜问题
- 阿里云Linux服务器配置Java环境
- python判断字符串相等_“python”中怎么判断字符串相等?
- Java代码增加回滚6_如何编写取消按钮的代码以撤消/回滚添加和更新正在进行的行4gl...
- 根据pid查端口_PID控制原理:看完这几个故事你就明白了
- python代码规范软件_python代码规范
- [中铁六局北京铁建公司]举办的演讲比赛所使用的界面(现场抓拍照片)
- 运维 ansible工具
- 记录一次es head测试使用说明