• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

vue实现axios图片上传功能

vue 搞代码 4年前 (2022-01-08) 28次浏览 已收录 0个评论

这篇文章主要为大家详细介绍了vue实现axios图片上传功能,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

vue中实现图片上传,我这里使用的是FormData通过axios向后台发送请求,从而实现图片的上传。

在发起请求的axios中一般用qs进行序列化,但是序列化之后,FormData就传送失败,所以要区别传送的数据类型。

经过多次摸索总结了以下经验,以供参考。

首先创建一个文件夹services ,里面有两个文件 index.js 和 api.js。

我们的qs序列化和数据拦截写在index.js中

 import axios from "axios"; import config from "@/config"; import router from "@/router"; import validate from "@/util/validate"; import Qs from "qs"; const request = axios.create({ baseURL: config.hostUrl, timeout: 52000, transformRequest: [ (data) => { return data instanceof FormData ? data : Qs.stringify({ //此处的data类型判断为重要点, ...data }); } ] }); request.interceptors.request.use( //请求拦截 config => { return config; }, error => Promise.error(error) ); request.interceptors.response.use(// 响应拦截器 async function (res) { if (res.status === 200) { return Promise.resolve(res.data); } else { return Promise.reject(res.data); } }, async function (error) { const { response } = error; if (response) { return Promise.reject(response); } else { } } ); export default request;

写好上面的代码在api.js 请求接口就无须做任何操作了,下面示例:

 async upImgs(files) { // 我的相册图片上传 return (await request.post('/basis/uploadFile', files)).response },

页面调用接口

 async file_up(event) { //图片预览 try <em style="color:transparent">本文来源gao.dai.ma.com搞@代*码#网</em>{ let res = null; this.file = [...event.target.files]; for (let i = 0, f; (f = this.file[i]); i++) { if (i >= 8 || this.imgs.length >= 8) { return; } let fileImg = new FormData(); fileImg.append("file", f); res = await this.$api.upImgs(fileImg); //这里是调用api处, 此处为多图上传,供参考 if (res.result) { this.imgs.push(res.result.absoluteFilePath); } } } catch (err) { this.$toast({ message: err.message, duration: 1200 }); } }

是不是很简单呀!反正我是实现了,有问题可以讨论下哦。

以上就是vue实现axios图片上传功能的详细内容,更多请关注gaodaima搞代码网其它相关文章!


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:vue实现axios图片上传功能

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址