Загрузка файла Laravel с помощью dropzone.js

У меня странная проблема при попытке загрузить файлы с помощью dropzone.js. Я хотел загрузить все файлы в папку public > file-archive. Если папка не существует, запрос проходит нормально, хотя я не вижу загруженного файла.

public function store(Request $request)
{
    $this->createArchiveFolder();
    Storage::disk('archive')->put($request->file->getClientOriginalName() . $request->file->getClientOriginalExtension(), $request->file);
}

protected function createArchiveFolder()
{
    if (!file_exists(public_path() . '/file-archive'))
        \File::makeDirectory(public_path() . '/file-archive', 777);
}

После этого папка создается (я также пытался создать ее вручную и закомментировал метод создания). Если я пытаюсь загрузить файл, когда папка существует, я получаю это:

введите здесь описание изображения

Мой маршрут:

Route::post('file-archive', 'FileArchiveController@store')->name('file-archive.store');

и моя передняя часть:

{!! Form::open(['route' => 'file-archive.store', 'class' => 'dropzone', 'files'=>true, 'id'=>'real-dropzone']) !!}

<div class="dz-message"></div>

<div class="fallback">
    <input name="file" type="file" multiple/>
</div>

<div class="dropzone-previews" id="dropzonePreview"></div>

<h4 style="text-align: center;color:#428bca;">Drop files in this area <span
            class="glyphicon glyphicon-hand-down"></span></h4>

{!! Form::hidden('csrf-token', csrf_token(), ['id' => 'csrf-token']) !!}

{!! Form::close() !!}

person Norgul    schedule 29.10.2017    source источник


Ответы (1)


Лучше всего нажать на эту ошибку, а затем выбрать вкладку response, чтобы увидеть, что это за ошибка.

Поскольку вы получаете сообщение об ошибке 403, я думаю, что проблема связана с токеном, вы создаете поле с именем csrf-token, но Laravel ожидает _token.

Для будущих форм вы можете использовать помощник {!! csrf_field() !}}, который создаст для вас скрытый ввод.

person Lloople    schedule 29.10.2017