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))

Открытие формы в Laravel Docs


Я решил, что было не так. Код в порядке, но проблема была в том, что некоторые картинки были просто большими.

EDIT:
Как не паниковать отметил, редактирование upload_max_filesize может решить проблему.


У меня была такая же проблема, я проверил свой код и заметил, что у меня нет заголовка enctype="multipart/form-data" в форме, надеюсь, что это большое пренебрежение поможет кому-нибудь