使用Axios和Laravel上传图像时出现问题

时间:2019-07-02 22:45:24

标签: laravel axios

我正在尝试使用Axios和Laravel API上传和保存图像,但出现422错误。

我已经用Postman进行了测试,结果也一样,我有一个类似的控制器**(没有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 :(得分:0)

首先,对不起,我无法发表评论。但我看到这一行:   $ images [] = $ request-> file('photo'); 建立一个二维数组。我会尝试不带括号的作业:    $ images = $ request-> file('photo');