Closed kylesean closed 7 years ago
你好,我刚才用laravel最新的版本5.4.33试了一下,上传的zip和jpg都可以正常显示下载,没发现有这个问题。你提到了使用response()->download()
,其实下载一个文件,只需提供对应路由就行了,后端是不需要写任何代码的。如果不是这个原因,可否详细描述一下你的操作?
下载的路由格式是 "/aetherupload/download/"+savedpath+"/"+newname
比如你上传后保存到数据库的savedpath是file/201708/1.jpg
,那么你只需在页面中按照上面的格式拼出"/aetherupload/download/file/201708/1.jpg/newname“ 这样的路由就可以下载了
感谢回复。。我恢复了默认配置试了下你这个路由,还是同样的错误
环境:
@kylesean 我使用windows做服务器也没这个问题,其他人也没提出过这个问题,上传的文件应该是完整的吧?你先排查一下,换个浏览器什么的。。
@kylesean 我帮你查了下,可能是你浏览器安装的某些下载类扩展导致的,你关掉试试。
@peinhu 刚才新拉了一个项目试了,正常,我这边估计集成在自己的环境出问题了,扩展全禁了,还是不行,我再排查下,感谢。。。。这个 issue 我关了,找出原因我再来回复,谢谢。。。
恩,好的。
@peinhu 解决了,使用了这个 ob_end_flush()
方法输出缓冲区内容并关闭缓冲,我看了下wamp默认的PHP配置文件里
implicit_flush
这个是off的
该配置直接影响apache的缓冲区,有2种配置参数. on/off
on - 自动刷新apache缓冲区,也就是,当php发送数据到apache的缓冲区的时候,不需要等待其他指令,直接就把输出返回到浏览器
off - 不自动刷新apache缓冲区,接受到数据后,等待刷新指令
应该跟这里有关,另外PHP自带的 output_buffering 这个缓冲我是关闭的,所以问题应该是这里,哈哈
应该是output_buffering被关闭的问题,所以报文件不完整,解决了就好。
你好,这个 package 我在5.4版本中试了下,的确实现了文件上传,当我用
response()->download()
下载的时候数据就损坏了,涉及的格式有 zip jpg等。难道是我的使用姿势不对?望回复,谢谢...