求解答,本地上传文件存储后变成了 zip 格式

laravel 上传文件。发现上传图片没问题,但是文档格式docx和xlsx上传到七牛后变成了zip格式,我用getClientOriginalExtension函数获取了文件后缀,然后自定义了名字
file
file
file
file
就是这里,变成了zip???懵逼中

颠倒的玉石
《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。
《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
讨论数量: 7
颠倒的玉石

打错字了,上传到本地,不是七牛

5年前 评论

可能是因为文件本身的Mime-Type是:application/octet-stream,这种情况下laravel无法判断此文件是什么类型的,有些excel文档、docx文档、或者pdf、或者图片本身上传以后,获取到的类型就是application/octet-stream,至于为什么excel文档不是application/x-xls或application/vnd.ms-excel,这个我就不知道了

目前我的处理方式:是手动获取最后一个点后面的文件后缀,不是通过laravel获取后缀的方法$extension = $request->file('avatar')->extension();,这是笨方法,没想到其他方法

3年前 评论

获取到上传文件对象后,可以使用storeAs("文件路径", "文件名称(含后缀)", "存储对象")代替store()方法。举个例子:

$uploadFile->storeAs("20200701", "A.xlsx", "oss");

可以解决wps引起的,excel文件上传自动保存为zip的情况。

3年前 评论

怎么解决的?我也遇到类似的问题

3年前 评论

不用xlsx,用xls后缀

2年前 评论
test2018

直接用putFileAs替代就好了

2年前 评论

将 vendor 下的 FileHelpers.php 中的 guessExtension改成getClientOriginalExtension即可

10个月前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!