首页 > 解决方案 > Vue:发送到 Laravel 后端时上传的文件为空

问题描述

我有一个来自 Vuetify 的图像上传器,它允许用户添加要上传的图像。它将它们存储在 v-modelfiles中。Files 是一个文件对象数组,形状如下:

this.files = [
   0: {
     lastModified: 1588138776398
     lastModifiedDate: Wed Apr 29 2020 01:39:36 GMT-0400 
     (Eastern Daylight Time) {}
     name: "video-pause.png"
     size: 932
     type: "image/png"
     webkitRelativePath: ""
     }
  ]

然后我有一个按钮,可以使用此功能将文件提交到后端端点:

uploadAssets: function() {

    axios.post('/upload-images', {
        images: this.files,
    })
    .then(response => {
        debugger
    })
}

我应该接收图像的 Laravel 后端控制器如下所示:

public function uploadImages(Request $request)
{
    print $request->file('images');
    if ($request->hasFile("images")) {
        log_info($request->file('images'));
        $files = $request->file('images');
        $stack = [];
        foreach ($files as $file) {
            $fileName = Storage::put(shop_id().'/assets/', file_get_contents($file->getRealPath()), ['visibility' => 'public']);
            array_push($stack, $fileName);
        }
        return response()->json($stack);
    }
}

我的问题是后端方法中的打印日志将图像显示为[{}]. 我不知道为什么没有发送数据。

标签: laravelvue.js

解决方案


推荐阅读