【发布时间】:2019-09-10 11:07:16
【问题描述】:
我有什么
我在 Laravel 6 中创建了一个非常简单的多图上传器。视图和控制器的代码如下:
查看:
<form action="{{ route('create') }}" method="POST" enctype="multipart/form-data">
@csrf
<input name="images[]" type="file" multiple="multiple" />
</form>
控制器:
function create(Request $request) {
$this->validate($request, [
'images.*' => 'image',
]);
foreach($request->images as $image) {
// $filename = 'IMG_1921.jpg'
$filename = $image->getClientOriginalName();
// $path = 'uploads/IMG_1921.jpg'
$path = $image->storeAs('uploads', $filename);
// $absolutePath = 'C:\htdocs\laravel-test\storage/uploads/IMG_1921.jpg'
$absolutePath = sprintf('%s/%s', storage_path(), $path);
// crash here
// $data = getimagesize($absolutePath);
}
return 'ok';
}
问题
在我取消注释 getimagesize($absolutePath) 函数的行之前,一切正常。我也尝试了filesize($absolutePath) 并给出了同样的错误:
参数 1 传递给 Facade\FlareClient\Context\RequestContext::Facade\FlareClient\Context{closure}() 必须是 Symfony\Component\HttpFoundation\File\UploadedFile,给定数组
如果getimagesize() 不使用任何UploadedFile 对象,我不明白为什么会显示此错误。
有关错误的更多信息:
【问题讨论】:
-
尝试
dd($absolutePath)并评论结果 -
dd($absolutePath)返回"C:\htdocs\laravel-test\storage/uploads/IMG_1921.jpg"。gettype($absolutePath)返回string。
标签: php laravel file-upload laravel-6