Laravel Input::hasFile ('image') возвращает false, даже если файл загружен
у меня есть поле формы для загрузки изображения, которое я открываю с помощью 'files' = > true, например:
{{ Form::label('image', 'Image') }}
{{ Form::file('image') }}
и в моем контроллере я хочу проверить, был ли загружен файл и сделать что-то с ним:
if (Input::hasFile('image')){
$in_path = 'img/';
$in_extension = Input::file('image')->getClientOriginalExtension();
$filename = Input::get('name').".".$in_extension;
Input::file('image')->move($in_path, $filename);
$user->image = $filename;
}
но Input::hasFile
всегда возвращает false, и я не знаю, почему.
Input::file('image');
результаты:
SymfonyComponentHttpFoundationFileUploadedFile Object
(
[test:SymfonyComponentHttpFoundationFileUploadedFile:private] =>
[originalName:SymfonyComponentHttpFoundationFileUploadedFile:private] => test.JPG
[mimeType:SymfonyComponentHttpFoundationFileUploadedFile:private] => application/octet-stream
[size:SymfonyComponentHttpFoundationFileUploadedFile:private] => 0
[error:SymfonyComponentHttpFoundationFileUploadedFile:private] => 1
[pathName:SplFileInfo:private] =>
[fileName:SplFileInfo:private] =>
)
я протестировал с другим изображением для другого пользователя, и это работает нормально. Я не понимаю, почему это работает для некоторых Пользователи и для некоторых других нет.
Может быть, есть какие-то фотографии, которые не принимаются?
какие другие источники могут быть причиной этой проблемы?
3 ответов
Как вы открываете свою форму? Если вы хотите, чтобы ваша форма принимала файлы, вам нужно открыть ее следующим образом:
echo Form::open(array('url' => 'foo/bar', 'files' => true))
Я решил, что было не так.
Код в порядке, но проблема была в том, что некоторые картинки были просто большими.
EDIT:
Как не паниковать отметил, редактирование upload_max_filesize
может решить проблему.
У меня была такая же проблема, я проверил свой код и заметил, что у меня нет заголовка enctype="multipart/form-data" в форме, надеюсь, что это большое пренебрежение поможет кому-нибудь