извлечение данных multiparts / form из angular в laravel php RESTfull api

#php #angular #laravel #ionic-framework

#php #angular #laravel #ionic-framework

Вопрос:

У меня есть приложение, разработанное с использованием ionic angular, и я хочу загрузить файлы и отправить на laravel php вот что я сделал, но это не работает.

Вот моя форма отправки в ionic angular :

  async submitForm(){
    let options = {headers: new HttpHeaders({ 
      'Content-Type': 'multi-part/formdata',
     })  };
    let formData= new FormData();
    formData.append("photo",this.file, this.file.name);
    // console.log(formData)
    this.http.post<any>(this.env.API_URL   'auth/form', formData, options).subscribe(
      data => {
        this.alertService.presentToast("تم رفع الملفات بنجاح");
      },
      error => {
        console.log(error);
      },
    )
 

сторона laravel:

 public function apistore(Request $request)
    {
        $user = Auth::user()->id;
        $this->validate($request, [
            // 'photo' => 'required',
        ]);
        $image = $request->{'photo'};
        if($image->hasFile('photo'))
        {
            $file=$image->file('photo');
            $filename = $file->getClientOriginalName();
            $extension = $file->getClientOriginalExtension();
            $picture = date('His').'-'.$filename;
            $file->move(public_path().'/attach/images', $picture);  
        }
        $attachments= new attachments();
        $attachments->filename=$image;
        $attachments->user_id = Auth::user()->id;
        $attachments->take_image = $request->{'take_image'};
        $attachments->save();
        return response()->json([
            'success' => true,
            'data' => $attachments->toArray(),
            'message' => 'Data updated'
        ]);
    }
 

Обычно я извлекаю данные из ionic таким образом, и это работает

     $job_info->job = $request->{'job_info.job'};
 

Комментарии:

1. каков результат $request::all() в функции контроллера laravel?

2. Если вы dd ($request) в контроллере, можете ли вы увидеть фотографию в запросе?

3. Я думаю, что проблема со значением заголовка. он должен быть составным / form-data, а не составным / formdata

4. Нет, я получил эту ошибку 404 OK», «ошибка»

5. После того, как я отредактировал его, я получил эту ошибку (ошибка 500: {«сообщение»:»Вызов функции-члена HasFile() при null» )