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)
非常感谢!
我可能会迟到.
但是我认为有人可能需要一种专门流式传输文件的方法
本地存储而不是s3.
以下是如何将文件流式传输到本地存储.正如文件所说
本地驱动程序
使用本地驱动程序时,请注意所有文件操作都与配置文件中定义的根目录相关.默认情况下,此值设置为storage/app目录.因此,以下方法将文件存储在storage/app/file.txt中:
Run Code Online (Sandbox Code Playgroud)Storage::disk('local')->put('file.txt', 'Contents');
所以要流式传输到本地而不是使用s3作为答案中提到的@koalaok你可以使用本地.所以它会是这样的
$disk = Storage::disk('local');
$disk->put($targetFile, fopen($sourceFile, 'r+'));
Run Code Online (Sandbox Code Playgroud)
如果要上传大文件,则应使用流。这是执行此操作的代码:
$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