我正在开展涉及将视频上传到s3的laravel项目,但是当我尝试上传文件时,它始终会运行"上传x%"在左下角,然后在达到100%后进入404页面(并且没有文件上传到s3)。
当前代码:
$fileName = time().'.'.$request->file->getClientOriginalExtension();
$file = $request->file('file');
Storage::disk('s3')->put($fileName, fopen($file, 'r+'));
$fileName = Storage::disk('s3')->url($fileName);
return back()
->with('success','Image Uploaded successfully.')
->with('path',$fileName);}
我也尝试过使用相同结果的常规,非流式上传。这不是上传视频的正确方法吗?
答案 0 :(得分:0)
如果您尝试上传大视频文件,PHP可能会耗尽内存。
尝试在流中上传:
$disk = Storage::disk('s3');
$disk->put($targetFile, fopen($sourceFile, 'r+'));
您还可以使用流将文件从S3下载到本地文件系统:
$disk = Storage::disk('s3');
$stream = $disk->getDriver()
->readStream($sourceFileOnS3);
file_put_contents($targetFile, stream_get_contents($stream), FILE_APPEND);