如何在laravel voyager上传一个大文件?

wko9yo5t  于 2023-01-06  发布在  其他
关注(0)|答案(2)|浏览(185)

我正在使用laravel与voyager作为管理面板。我试图上传一个视频通过voyager媒体选择器与文件大小3GB,但每次我这样做,我得到以下消息:
第一个月
我把upload_max_filesizepost_max_size都改成了4G,但还是遇到了同样的问题。
我试着在. htaccess中添加以下代码行
php_value upload_max_filesize 4G
php_value post_max_size 4G
仍然是同一问题
我尝试将在vendor/laravel/sail/runtime/7.4/php.ini和vendor/laravel/sail/runtime/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

我还是有同样的问题。
我真的被卡住了,不知道该怎么办,有人知道如何解决这个问题吗?

f87krz0w

f87krz0w1#

有几件事你需要做:

PHP更改

首先,您需要在PHP配置文件中增加上传文件的大小,您可以通过编辑php.ini文件并更改upload_max_filesizepost_max_size的值来实现。
如果不知道php.ini文件的位置,可以创建一个名为info.php的新文件并添加以下代码:

<?php
phpinfo();

然后,您可以在浏览器中访问info.php文件,它会显示您的php.ini文件的位置。
在PHP配置文件中增加上传文件的大小后,您需要重新启动Web服务器,然后再次访问info.php文件以确保更改已应用。

Dropzone.js更改

Laravel Voyager媒体管理器使用Dropzone.js库来处理文件上传。因此,您需要在Dropzone定义中增加文件上传的大小。
Laravel Voyager媒体管理器中上传文件的默认大小为256MB。
为此,我们将把媒体管理器视图文件从Laravel Voyager包复制到我们的项目中。您可以通过运行以下命令来完成此操作:

  • 如果resources/views/vendor/voyager/media目录不存在,请创建该目录:
mkdir -p resources/views/vendor/voyager/media
  • manager.blade.php文件从Laravel Voyager包复制到我们的项目中:
cp vendor/tcg/voyager/resources/views/media/manager.blade.php resources/views/vendor/voyager/media/manager.blade.php

现在,您可以打开resources/views/vendor/voyager/media/manager.blade.php文件并将maxFilesize值设置为所需大小。

  • 打开文件并转到第847行:
nano +847 resources/views/vendor/voyager/media/manager.blade.php

dropzone函数中添加一个新行,并将maxFilesize值设置为所需的大小:

...
            dropzone.dropzone({
                // Add the line below
                maxFilesize: 500,
                timeout: 180000,
                url: '{{ route('voyager.media.upload') }}',
...

保存文件,你就完成了。之后,到媒体管理器页面,做一个硬刷新,以确保该高速缓存被清除,并尝试上传一个大于默认大小的文件。
Source

93ze6v8z

93ze6v8z2#

由于这个问题还没有得到回答,我将分享一些知识,以供其他人将来参考。
有几个因素需要考虑。
1.在继续测试dropzone.js之前,请检查您的服务器配置是否允许4000M的上载(您可以测试正常的文件上载
由于某些服务器(例如:nginx或其他)也有默认值,因此它们也可能限制您上传大文件。
1.修改上传限制值php.ini(看起来你已经完成了)。
1.检查assets文件夹中的dropzone.js设置,因为dropzone有自己的配置。
请在此处选择一个可能的答案:Dropzone.js - maxFilesize increase not working
1.确保将上述所有操作的超时时间增加到几分钟。
默认超时是30秒,如果你没有超快的互联网,这是不够的时间,所以需要增加超时设置为您的serverphpdropzone.js
最后,如果所有失败,你需要Inspect Element你的网络当你上传,它应该给予你一个想法是什么错误,以克服它。

相关问题