使用laravel将图像上传到S3,并且在此网站正常工作之前,该网站存在问题。
从表单中返回图片时我得到了:
/Applications/MAMP/tmp/php/php4SKXfX
我的表格是:
{!! Form::model($user, [
'url' => ['user', $user->username],
'class' => '',
'files' => true,
'method' => 'patch'
]) !!}
{!! Form::file('profile_image', NULL, ['class' => 'form-control'] ) !!}
{!! Form::button("Update Profile Image", ['type' => 'submit', 'class' => 'btn btn-success'])!!}
{!! Form::close() !!}
我从班上得到的错误是:
file_get_contents() expects parameter 1 to be a valid path, object given
我之前使用过这个课程,但没有使用我正在制作的这个表格。
我获取图片的方式是:
return $request->file('profile_image');
我哪里错了?
这是S3的上传行:
$image = $request->file('profile_image');
$uploaded = Storage::disk('s3')->put('images/' . $fileName, file_get_contents($image));
答案 0 :(得分:0)
错误:
file_get_contents() expects parameter 1 to be a valid path, object given
告诉你需要一条路径,而不是一个对象。您正在传递$request->file('profile_image')
的结果,Symfony\Component\HttpFoundation\File\UploadedFile
是$image = $request->file('profile_image');
$uploaded = Storage::disk('s3')->put('images/' . $fileName, file_get_contents($image->getClientOriginalName()));
的实例。
您想要传递文件的路径吗?所以我想你想这样做:
Symfony\Component\HttpFoundation\File\UploadedFile
在此处查看有关处理文件的更多详细信息:
https://laravel.com/docs/5.2/requests#files
和{{1}}
的文档答案 1 :(得分:0)
来自docs:
file方法返回的对象是。的实例 Symfony \ Component \ HttpFoundation \ File \ UploadedFile类,其中 扩展PHP SplFileInfo类并提供各种方法 用于与文件交互
将代码更改为:
$uploaded = Storage::disk('s3')->put('images/' . $fileName, file_get_contents($image->getPath() . '/' . $image->getFilename()));