Что у меня есть
Я создал очень простой загрузчик нескольких изображений в 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)
и прокомментируйте результат - person rkg   schedule 10.09.2019dd($absolutePath)
возвращает"C:\htdocs\laravel-test\storage/uploads/IMG_1921.jpg"
.gettype($absolutePath)
возвращаетstring
. - person cespon   schedule 10.09.2019