Невозможно загрузить изображение в laravel 4

0

У меня есть эта основная форма:

{{ Form::open(array('url' => URL::route('post-account-changeProfilePic'), 'files' => true, ))}}
{{ Form::file('photo') }}
<br />
{{ Form::submit('Regístrarme', array("class" => "button expand round")) }}
{{ Form::close() }}

Мой маршрут находится внутри двух групп: before=>Auth и before=>csrf

Route::post('/accont/changeProfilePic', array(
    'as'    => 'post-account-changeProfilePic',
    'uses'  =>  'CallCenterController@postChangeProfilePic'
));

В моем контроллере я просто сбрасываю переменную, чтобы увидеть, что у меня есть:

public function postChangeProfilePic(){
    $input = Input::all();
    var_dump($input);
}

Это ошибки, которые я получаю:

1- Illuminate\Session\TokenMismatchException.

Это из-за фильтра csrf, но поскольку я использую лезвие, токен на самом деле есть. Кроме того, если я удалю атрибут имени из ввода файла, эта ошибка не будет отображаться.

До сих пор я решил разместить маршрут за пределами фильтра csrf, пока не пойму, что происходит.

2- После размещения маршрута из фильтра csrf и попробуйте отобразить все входы, я получаю null массив.

Я решил добавить новое текстовое поле, и если я не выберу фото/рис и отправлю только такую форму, он выведет на экран все входы, но, конечно, файл пуст/нуль.

Любая идея о том, что я делаю неправильно?

Теги:
image-uploading
laravel-4

2 ответа

0

Хорошо, я думаю, это может быть

изменение

{{ Form::open(array('url' => URL::route('post-account-changeProfilePic'),
                        'files' => true, ))}}

в

{{ Form::open(array('route' => 'post-account-changeProfilePic',
                        'files' => true )) }}

Я не думаю, что вам нужно "," в конце истины.

0

В вашей форме попробуйте изменить это на массив ('before' => 'csrf'), function()

{{ Form::open(array('url' => URL::route('post-account-changeProfilePic'), 'before' => 'csrf'), 'files' => true, ))}}

Маркер csrf должен быть там по умолчанию, так как вы выполняете запрос POST, поэтому не знаете, где там проблема.

http://laravel.com/docs/4.2/html#csrf-protection

для ввода попробуйте

public function postChangeProfilePic(){

    if (Input::hasFile('photo'))
    {
        $input= Input::file('photo');
        var_dump($input);
    }
}

http://laravel.com/docs/4.2/requests#files

  • 0
    Спасибо за ваш ответ Крис. Проблема все еще остается. У меня есть несколько маршрутов внутри группы, например: Route :: group (array ('before' => 'csrf'), function () {// Routes here ...}); И да, токен размещается в форме рамкой. Массив post продолжает "отправлять" как ноль ... так что не знаю, что делать
  • 0
    Хорошо, не могли бы вы добавить еще одно поле ввода формы для меня. Просто ввод текста и подтверждение того, что ничего не публикуется и с этого ввода?
Показать ещё 1 комментарий

Ещё вопросы

Сообщество Overcoder
Наверх
Меню