上传文件的功能是后端来做
点击浏览按钮能弹出选择的文件夹
点击上传的按钮需要调接口完成上传功能
下面是定义的接口和后端postman截图
只要传一个path就可以了,请问应该在Upload方法里面怎么调用接口把需要上传的文件传给后端呢
上传文件的功能是后端来做
点击浏览按钮能弹出选择的文件夹
点击上传的按钮需要调接口完成上传功能
下面是定义的接口和后端postman截图
只要传一个path就可以了,请问应该在Upload方法里面怎么调用接口把需要上传的文件传给后端呢
构造 FormData
将文件上传给后端即可,示例如下:
const form = new FormData();
// 可以在handleFileChange事件中拿到file
form.append("file", file);
const { data } = await axios.post("/", form);
// 将data.path再次调用接口传给后端
console.log(data.path);
上传文件要用表单form-data提交的方式,而且参数key是file
handleFileChange 拿到的文件塞进formData传给后端;
const data = new formData()
datas.append('file',file)
header中要有'Content-type': 'multipart/form-data'
看了一眼,好像 DCodes 的答案靠点谱。
你都选了 elementui 了,直接用 el-upload 就完事了,应该就需要配置 action 为上传接口地址就行。这个适用于有独立的上传接口,表单提交只需要 url + 表单
至于手动写 el-input type=file
的是另一种情况(没有独立的上传接口,file资源和表单需要同一个接口上传)。
8 回答5.8k 阅读✓ 已解决
9 回答9.2k 阅读
6 回答4.8k 阅读✓ 已解决
5 回答3.5k 阅读✓ 已解决
3 回答10.3k 阅读✓ 已解决
4 回答7.9k 阅读✓ 已解决
7 回答9.8k 阅读
流程如下:
1、
input type = file
2、调用上传前事件
3、上传前事件中将
file
文件转formData
4、调用后端
oss
接口上传文件5、上传完成后回显数据
6、点击图片/视频预览
beforeAvatarUpload
为文件上传前的操作,该方法中会携带一个参数file
,file
就是当前上传的文件,我们需要用new FormData()
转为file
文件格式,调用后端接口上传图片/视频。图片的上传也是一样的,此时图片上传和视频上传的一般流程就结束了,页面列表中遍历
dataList
即可回显数据。