微笑丿 2019-09-05 11:11 采纳率: 25%
浏览 1241

ant+vue+springboot 上传文件时接收不到文件

 <a-upload
                                name="file"
                                listType="picture-card"
                                :fileList="fileList"
                                :multiple="true"
                                @preview="handlePreview"
                                :beforeUpload="beforeUpload"
                                @change="handleChange"
                        >
                            <div v-if="fileList.length < 1">
                                <a-icon type="plus" />
                                <div class="ant-upload-text">Upload</div>
                            </div>
                        </a-upload>

js代码如下

var formData = new FormData()

                formData.append('file', this.fileList[0]);
                formData.append('userid', '1');
                formData.append('systemid', '886');
                this.axios(
                    {
                        method: 'post',
                        url: 'http://localhost:8086/rest/uploadFileByMulti',
                        processData: false,
                        data: formData
                    })
                    .then((response) => {
                        alert(JSON.stringify(response))
                    })
                    .catch(function (error) {
                        console.log(error)
                    })

后台接受代码如下

 @RequestMapping("/uploadFileByMulti")
    @ResponseBody
    public AjaxResult uploadFileList(@RequestParam("file") 
        MultipartFile file String userid, String systemid) {
......
}

上传时一直报file为空

  • 写回答

2条回答 默认 最新

  • 微笑丿 2019-09-05 14:03
    关注

    找到问题了,vue的filelist是base64格式的 ,需要转为file格式就可以了
    self.imageUrl = file.url || file.thumbUrl
    form.append('image', self.dataURLtoFile(self.imageUrl,file.name))

    dataURLtoFile(dataurl, filename) {//将base64转换为文件
    var arr = dataurl.split(','), mime = arr[0].match(/:(.*?);/)[1],
    bstr = atob(arr[1]), n = bstr.length, u8arr = new Uint8Array(n);
    while(n--){
    u8arr[n] = bstr.charCodeAt(n);
    }
    return new File([u8arr], filename, {type:mime});
    },

    评论

报告相同问题?

悬赏问题

  • ¥15 delta降尺度计算的一些细节,有偿
  • ¥15 Arduino红外遥控代码有问题
  • ¥15 数值计算离散正交多项式
  • ¥30 数值计算均差系数编程
  • ¥15 redis-full-check比较 两个集群的数据出错
  • ¥15 Matlab编程问题
  • ¥15 训练的多模态特征融合模型准确度很低怎么办
  • ¥15 kylin启动报错log4j类冲突
  • ¥15 超声波模块测距控制点灯,灯的闪烁很不稳定,经过调试发现测的距离偏大
  • ¥15 import arcpy出现importing _arcgisscripting 找不到相关程序