我是否知道如何在Laravel 5中上传超过5Mb的大文件?我正在尝试上传大约10MB的图片文件但是没有上传,我搜索了很多并更新了php.ini
post_max_size = 500M;
memory_limit = 500M;
upload_max_filesize = 500M
我已重新启动Apache服务器但仍有问题。 php.ini
或Laravel中是否还有其他设置来上传大文件?请帮忙。
修改
$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;
}
非常感谢!
答案 0 :(得分:7)
我可能会迟到。
但我认为有人可能需要一种专门将文件流式传输到
的方法本地存储而不是s3 。
以下是将文件流式传输到本地存储的方法。正如documentation所说
本地驱动程序
使用本地驱动程序时,请注意所有文件操作都是 相对于配置文件中定义的根目录。通过 默认情况下,此值设置为storage / app目录。因此, 以下方法将文件存储在storage / app / file.txt中:
Storage::disk('local')->put('file.txt', 'Contents');
所以要转发到本地而不是使用 s3 作为答案中提到的@koalaok,您可以使用本地。所以它会像
$disk = Storage::disk('local');
$disk->put($targetFile, fopen($sourceFile, 'r+'));
答案 1 :(得分:4)
如果要上传大文件,则应使用流。这是代码:
$disk = Storage::disk('s3');
$disk->put($targetFile, fopen($sourceFile, 'r+'));
即使您上传了几GB的文件,PHP也只需要几MB的RAM。
来源:https://murze.be/2015/07/upload-large-files-to-s3-using-laravel-5/
有关存储的用法和配置,请参阅Lrvl5 doc: https://laravel.com/docs/5.0/filesystem
答案 2 :(得分:0)
在Laravel新版本(+5.3)中,具有“自动流”功能。您可以这样使用:
use Illuminate\Http\File;
use Illuminate\Support\Facades\Storage;
// Automatically generate a unique ID for file name...
Storage::putFile('photos', new File('/path/to/photo'));
// Manually specify a file name...
Storage::putFileAs('photos', new File('/path/to/photo'), 'photo.jpg');
有关更多信息,请关注此文档并搜索“自动流式传输”:https://laravel.com/docs/5.6/filesystem