如何在 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_filesizepost_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 秒,如果您没有超快的互联网,则时间不够,因此需要增加您的 serverphpdropzone.js 的超时设置。

最后,如果一切都失败了,你需要在上传时Inspect Element你的网络,它应该让你知道错误是什么来克服它。

【讨论】:

以上是关于如何在 laravel voyager 中上传大文件?的主要内容,如果未能解决你的问题,请参考以下文章

如何使用Voyager Laravel Admin在BREAD浏览模式下显示缩略图

基于用户角色的 Laravel voyager 策略

为Laravel Voyager创建数据导入页面

一款你不容错过的Laravel后台管理扩展包 —— Voyager

安装Laravel Voyager软件包时迁移错误

一款你不容错过的Laravel后台管理扩展包 —— Voyager