如何在laravel 5中上传> 5MB的大文件

Zee*_*oft 3 php file-upload laravel

我可以知道如何在Laravel 5中上传超过5Mb的大文件吗?我试图上传大约10MB的图像文件,但它没有上传,我搜索了很多并更新了以下设置php.ini

post_max_size = 500M;
memory_limit = 500M;
upload_max_filesize = 500M
Run Code Online (Sandbox Code Playgroud)

我已重新启动Apache服务器但仍有问题.php.iniLaravel中是否有其他设置来上传大文件?请帮忙.

编辑

$image = $request->file('image');

            if($image && $image != '') {

                $extension  = $image->getClientOriginalExtension();
                $imageName = $this->getUniqueName($extension);
                $image->move('gimages/profile_images/', $imageName);
                $profile_image = $imageName;
                $update_user_data['image'] = $profile_image;
            }
Run Code Online (Sandbox Code Playgroud)

非常感谢!

aim*_*mme 8

我可能会迟到.

但是我认为有人可能需要一种专门流式传输文件的方法

本地存储而不是s3.

以下是如何将文件流式传输到本地存储.正如文件所说

本地驱动程序

使用本地驱动程序时,请注意所有文件操作都与配置文件中定义的根目录相关.默认情况下,此值设置为storage/app目录.因此,以下方法将文件存储在storage/app/file.txt中:

Storage::disk('local')->put('file.txt', 'Contents');
Run Code Online (Sandbox Code Playgroud)

所以要流式传输到本地而不是使用s3作为答案中提到的@koalaok你可以使用本地.所以它会是这样的

$disk = Storage::disk('local');
$disk->put($targetFile, fopen($sourceFile, 'r+'));
Run Code Online (Sandbox Code Playgroud)


koa*_*aok 6

如果要上传大文件,则应使用流。这是执行此操作的代码:

$disk = Storage::disk('s3');
$disk->put($targetFile, fopen($sourceFile, 'r+'));
Run Code Online (Sandbox Code Playgroud)

即使您上传了几个GB的文件,PHP也只需要几个MB的RAM。

资料来源:https : //murze.be/2015/07/upload-large-files-to-s3-using-laravel-5/

有关存储的用法和配置,请参阅Lrvl5文档:https ://laravel.com/docs/5.0/filesystem