Проблема загрузки изображений с Axios и Laravel - PullRequest
1 голос
/ 03 июля 2019

Я пытаюсь загрузить и сохранить изображения с помощью Axios и Laravel API, но получаю ошибку 422.

Я тестировал с Почтальоном и у меня тот же результат, у меня естьаналогичный контроллер ** (без Foreach) ** но загружать только одно изображение одновременно, и он отлично работает.

///Axios

    async submitFiles(){
       let fd = new FormData()
       for(var i = 0; i < this.files.length; i++){
         let file = this.files[i]
         fd.append('photo[' + i + ']', file)
       }
       try{
        await this.$axios.$post(`/albums/${this.$route.params.id}/photos`, fd, {headers:{'Content-Type': 'multipart/form-data'}})
        console.log(...fd)
        alert('uploaded')
        this.files = []
      }
      catch(err){
        console.log(err)
        alert(err)
      }

     }

//Laravel

class PhotosInAlbumController extends Controller
{
    public function store(PhotoInAlbumRequest $request, Album $album)
    {


        if($request->hasfile('photo')) 
        {

            $photo = new PhotoInAlbum();
            $photo->photo = $request->photo;
            $images[] = $request->file('photo');
            foreach ($images as $image) 
            {
                $filenameWithExt = $image->getClientOriginalName();
                $filename = pathInfo($filenameWithExt, PATHINFO_FILENAME);
                $extension = $image->getClientOriginalExtension();
                $filenameToStore = $filename.'_'.time().'.'.$extension;
                $path = $image->storeAs('photo/images', $filenameToStore,'public');
                $photo->photo = $path;
                $album->photos()->save($photo);

            }

        }

        return $photo;

    }
}

Надеюсь, кто-то может помочь мне выяснить, что происходит.

Заранее спасибо (=

1 Ответ

0 голосов
/ 03 июля 2019

Во-первых, извините, я пока не могу комментировать. Но я вижу в этой строке: $ images [] = $ request-> file ('photo'); что двухмерный массив построен. Я бы попробовал присвоение без скобок: $ images = $ request-> file ('photo');

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...