Загрузить файл PDF с laravel и vuejs - PullRequest
0 голосов
/ 27 марта 2020

Я пытаюсь загрузить PDF-файл и вставить его в БД в моем проекте, используя laravel + vuejs, но отображается ошибка 405. 405 (Метод не разрешен), любая помощь, ребята? это ProjectDetail. vue:

       <form @submit="formSubmit" enctype="multipart/form-data">
         <input type="file" name="file" v-on:change="onFileChange">
         <button class="btn btn-success">Submit</button>
       </form>
              onFileChange(e){
            console.log(e.target.files[0]);
            this.file = e.target.files[0];
        },
        formSubmit(e) {
            e.preventDefault();
            let currentObj = this;

            const config = {
                headers: { 'content-type': 'multipart/form-data' }
            }

            let formData = new FormData();
            formData.append('file', this.file);

            axios.post('api/formSubmit/'+this.key, formData, config)
            .then(function (response) {
                currentObj.success = response.data.success;
            })
            .catch(function (error) {
                currentObj.output = error;
            });
        },

и это маршрут:

Route::post('/formSubmit/{id}','API\FileController@formSubmit');

и этот идентификатор моего контроллера:

 public function formSubmit(Request $request,$id)
{
    $fileName = time().'.'.$request->file->getClientOriginalExtension();
    $request->file->move(public_path('upload'), $fileName);
    $project =Projet::where('id',$id)->first();
    $project->file= $request->file;
    return response()->json(['success'=>'You have successfully upload file.']);
}

}

1 Ответ

0 голосов
/ 28 марта 2020

в vuejs функция написать это

 const formData = new FormData();
            formData.append("document[]", file, file.name);
                try {
            let { data } = await axios({
                method: "post",
                url: "yourapi",
                data: formData
            });

и в laravel функция контроллера

  $document="";
    if($request->hasFile('document'))
    {
            $request->document->store('public/uploads/document');
            $document= '/storage/uploads/document/'.$request->document->hashName();
    }
    $create=Property::create(
        [
            'name' => 'name',
        ]
        );
...