我尝试使用laravel将文件/图像/视频上传到aws s3。
在本地上传工作正常,但当我尝试在live aws服务器上传文件时,我收到错误。
我已尝试使用putFileAs
和put
方法在live aws s3服务器上传视频。但它仍然失败。
在检查日志以使用put
方法时,我得到了这个。
[2018-04-20 17:35:25] production.ERROR: fopen(): Filename cannot be empty {"exception":"[object] (ErrorException(code: 0): fopen(): Filename cannot be empty at /var/app/current/app/Http/Controllers/Offer/LibraryController.php:149)
这是我的代码。
我尝试了两种方式
使用put
方法
$path = Storage::disk($disk)->put($storagePath.'/'.$FileNameForUpload, fopen($validatedData['file'], 'r+'), 'public');
使用putFileAs
方法
$path = Storage::disk($disk)->putFileAs(
$storagePath, $validatedData['file'], $FileNameForUpload
);
编辑:
只有视频会出现问题,但图片和文字文件上传得很好吗?
答案 0 :(得分:0)
试试这个:
$destinationPath= 'Path of folder where you want to store file on S3 server with filename';
Storage::disk($disk)->put($destinationPath, file_get_contents('filename with path'));
答案 1 :(得分:0)
最大文件上传大小为2M :(
这就是为什么其他文件上传很好但是视频像2.7MB所以它给出了错误,但是我不知道为什么这个laravel没有给出文件限制错误而是它给文件名不能为空?
你已经解决了这个问题,在aws上更新了我的php版本7的ini文件。
答案 2 :(得分:0)
我遇到了问题,并且已经解决。
找到“ php.ini”文件(/etc/php/7.2/cli/php.ini)并通过根目录(sudo)打开它
更改post_max_size=50M
和upload_max_filesize=50M
(在您的情况下,只需更改upload_max_filesize)。