laravel视频/文件上传到aws s3

时间:2018-04-20 07:47:46

标签: php laravel amazon-web-services file-upload dropzone.js

我尝试使用laravel将文件/图像/视频上传到aws s3。

在本地上传工作正常,但当我尝试在live aws服务器上传文件时,我收到错误。

我已尝试使用putFileAsput方法在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
                );

编辑:

只有视频会出现问题,但图片和文字文件上传得很好吗?

3 个答案:

答案 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)

我遇到了问题,并且已经解决。

  1. 找到“ php.ini”文件(/etc/php/7.2/cli/php.ini)并通过根目录(sudo)打开它

  2. 更改post_max_size=50Mupload_max_filesize=50M(在您的情况下,只需更改upload_max_filesize)。