如何在 laravel voyager 中上传大文件?
Posted
技术标签:
【中文标题】如何在 laravel voyager 中上传大文件?【英文标题】:How to upload a large file in laravel voyager? 【发布时间】:2021-09-15 20:30:42 【问题描述】:我使用 laravel 和 voyager 作为管理面板。我正在尝试通过文件大小为 3GB 的 voyager 媒体选择器上传视频,但每次我这样做时都会收到以下消息:
File is too big (3015.93MiB). Max filesize: 256MiB.
我将 upload_max_filesize
和 post_max_size
都更改为 4G
但我仍然遇到同样的问题。
我尝试将以下行添加到 .htaccess
php_value upload_max_filesize 4G
php_value post_max_size 4G
还是一样的问题
我尝试将 vendor/laravel/sail/runtimes/7.4/php.ini 和 vendor/laravel/sail/runtimes/8.0/php.ini 中的 php.ini 文件修改为以下内容:
[PHP]
upload_max_filesize = 4G
post_max_size = 4G
variables_order = EGPCS
我还是遇到同样的问题。
我还在 public_html 目录中创建了一个名为 .user.ini 的新文件,这是文件的内容:
upload_max_filesize = 4G
post_max_size = 4G
我仍然遇到同样的问题。
我真的被卡住了,不知道该怎么办,有人知道如何解决这个问题吗?
【问题讨论】:
尝试将值更改为M
而不是 G
,4000M
而不是 4G
并重新启动服务器
同样的问题。我进一步研究了如何增加限制,我发现有一个 dropzone-js 文件,它具有默认的 256MiB 文件大小上传。但问题是我不知道在哪里可以找到这个文件。我搜索了所有文件,但不幸的是,我什么也没找到。
【参考方案1】:
由于这个问题还没有回答,所以我会分享一些知识以供其他人参考。
有几个因素需要考虑。
-
在继续测试
dropzone.js
之前检查你的服务器配置是否允许4000M的上传(你可以测试正常的文件上传)
由于某些服务器(例如:nginx 或其他服务器)也具有默认值,因此它们也可能会限制您上传大文件。
-
更改上传限制值php.ini(看来你已经做到了)。
检查资产文件夹中的
dropzone.js
设置,因为dropzone
有自己的配置。
请在此处查看可能的答案:Dropzone.js - maxFilesize increase not working
-
确保将上述所有操作的超时时间增加到几分钟。
默认超时时间为 30 秒,如果您没有超快的互联网,则时间不够,因此需要增加您的 server
、php
和 dropzone.js
的超时设置。
最后,如果一切都失败了,你需要在上传时Inspect Element
你的网络,它应该让你知道错误是什么来克服它。
【讨论】:
以上是关于如何在 laravel voyager 中上传大文件?的主要内容,如果未能解决你的问题,请参考以下文章
如何使用Voyager Laravel Admin在BREAD浏览模式下显示缩略图