Загрузить файл, путь к файлу null, VueJs / Laravel - PullRequest
0 голосов
/ 05 февраля 2020

Я пытаюсь создать простую загрузку файлов с Vuejs и Laravel. Но моя переменная 'file' в сообщении кажется нулевой.

<b-form-group label-for="file">
    <b-form-file
        v-model="file"
        id="file"
        :state="Boolean(file)">
        </b-form-file>
</b-form-group>

data() {
    return {
        file: null,
    },
}

и метод для публикации. (это работает для остальной части формы)

addContract(newContract) {
    post("/contracts/" + `${this.customer_id}`, newContract)
        .then((response) => {
            //
        }
        .catch(error){
            //
        }
}

Контроллер

//code
    $fileName = time(). '.' .$request->$file->getClientOriginalExtention();
    $request->file->move(public_path('upload'), $fileName);
    dd($fileName);  
//code

ОБНОВЛЕНИЕ Я устанавливаю топор * Заголовок 1020 *, но теперь я получил ошибку 422, когда это было приложение, которое я не сделал, но оно все еще не работало.

 headers: {
    'Content-Type': 'multipart/form-data'
 }

1 Ответ

0 голосов
/ 06 февраля 2020

Чтобы файл загружался через встроенный браузер, необходимо указать name для ввода файла (вместе с добавлением enctype="multipart/form-data" к включающему элементу <form>).

<b-form-file
  v-model="file"
  id="file"
  name="file"
  :state="Boolean(file)">
</b-form-file>

Это то же самое требование для любой формы <input>, <select> или <textarea> control.

...