使用uniapp做文件上传的时候,可以使用系统提供的接口进行文件上传
前端部分
前端组件代码
使用的是uview的上传组件
<u-upload id="selectPhoto" :style="{display:selectPhotoDisplay}" :useBeforeRead="true"
@afterRead="afterRead" @delete="deletePic" name="1" multiple accept="image" uploadText="图片"
:maxCount="9" :maxSize="10 * 1024 * 1024" @oversize="overSize" :previewFullImage="false"
:show-upload-list="false" :auto-upload="false">
</u-upload>
需要注意的点:
1、filePath 对应的是本地blod对象的地址
2、name 对应的是后台接收file对象的名称
3、resolve里面的url用来回显图像
const baseUrl = config.baseUrl;
return new Promise((resolve, reject) => {
resolve({
url: url
})
let a = uni.uploadFile({
url: baseUrl + '/file/upload',
filePath: url,
name: "files",
formData: {
file: url
},
headers: {
'Content-Type': 'multipart/form-data; boundary=----WebKitFormBoundaryXkII0NmP1jsvIgZC'
},
success: (res) => {
let data = JSON.parse(res.data)
resolve(data.msg)
}
});
})
后端代码
@PostMapping("/file/upload")
public AjaxResult upload(@RequestParam("files") MultipartFile file) {
...具体实现逻辑省略
}