vue实现axios图片上传功能


Posted in Javascript onAugust 20, 2019

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 {
    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
    });
   }
  }

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

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
JavaScript函数、方法、对象代码
Oct 29 Javascript
setTimeout和setInterval的区别你真的了解吗?
Mar 31 Javascript
window.dialogArguments 使用说明
Apr 11 Javascript
JS中的public和private对象,即static修饰符
Jan 18 Javascript
讨论html与javascript在浏览器中的加载顺序问题
Nov 27 Javascript
深入理解Javascript里的依赖注入
Mar 19 Javascript
解决vue+webpack打包路径的问题
Mar 06 Javascript
js取小数点后两位四种方法
Jan 18 Javascript
9102了,你还不会移动端真机调试吗
Mar 25 Javascript
Vue+Typescript中在Vue上挂载axios使用时报错问题
Aug 07 Javascript
微信小程序防止多次点击跳转(函数节流)
Sep 19 Javascript
vue中注册自定义的全局js方法
Nov 15 Javascript
扫微信小程序码实现网站登陆实现解析
Aug 20 #Javascript
vue+element-ui+axios实现图片上传
Aug 20 #Javascript
vue element upload实现图片本地预览
Aug 20 #Javascript
JS中的算法与数据结构之集合(Set)实例详解
Aug 20 #Javascript
Vue + Element UI图片上传控件使用详解
Aug 20 #Javascript
微信小程序项目总结之记账小程序功能的实现(包括后端)
Aug 20 #Javascript
ES6中Symbol、Set和Map用法详解
Aug 20 #Javascript
You might like
天使彦史上最神还原,性别曝光的那一刻,百万网友恋爱了
2020/03/02 国漫
JS 网站性能优化笔记
2011/05/24 PHP
ThinkPHP分页实例
2014/10/15 PHP
PHP下载远程文件到本地存储的方法
2015/03/24 PHP
功能强大的PHP图片处理类(水印、透明度、旋转)
2015/10/21 PHP
js停止输出代码
2008/07/20 Javascript
JS俄罗斯方块,包含完整的设计理念
2010/12/11 Javascript
你的 mixin 真的兼容 ECMAScript 5 吗?
2013/04/11 Javascript
ExtJS4中的requires使用方法示例介绍
2013/12/03 Javascript
javascript中2个感叹号的用法实例详解
2014/09/04 Javascript
ztree获取选中节点时不能进入可视区域出现BUG如何解决
2015/12/03 Javascript
javascript实现根据汉字获取简拼
2016/09/25 Javascript
JavaScript定义数组的三种方法(new Array(),new Array('x','y')
2016/10/04 Javascript
AngularJS实现的回到顶部指令功能实例
2017/05/17 Javascript
php register_shutdown_function函数详解
2017/07/23 Javascript
JavaScript实现星级评价效果
2019/05/17 Javascript
js 计数排序的实现示例(升级版)
2020/01/12 Javascript
vue 图片裁剪上传组件的实现
2020/11/12 Javascript
[23:18]Spirit vs Liquid Supermajor小组赛A组 BO3 第二场 6.2
2018/06/03 DOTA
[13:25]VP vs VICI (BO3)
2018/06/07 DOTA
python中定义结构体的方法
2013/03/04 Python
两个使用Python脚本操作文件的小示例分享
2015/08/27 Python
Python字符串拼接、截取及替换方法总结分析
2016/04/13 Python
Python爬虫框架Scrapy实例代码
2018/03/04 Python
Python-Tkinter Text输入内容在界面显示的实例
2019/07/12 Python
Django rest framework jwt的使用方法详解
2019/08/08 Python
对django2.0 关联表的必填on_delete参数的含义解析
2019/08/09 Python
Pytorch修改ResNet模型全连接层进行直接训练实例
2019/09/10 Python
韩国三星旗下的一家超市连锁店:Home Plus
2016/07/30 全球购物
Giglio德国网上精品店:奢侈品服装和配件
2016/09/23 全球购物
《卖木雕的少年》教学反思
2014/04/11 职场文书
高校自主招生校长推荐信
2015/03/23 职场文书
爸爸的三轮车观后感
2015/06/16 职场文书
《哪吒之魔童降世》观后感:世上哪有随随便便的成功
2019/11/08 职场文书
Win11 Build 21996.1 Dev版怎么样? win11系统截图欣赏
2021/11/21 数码科技
Java 死锁解决方案
2022/05/11 Java/Android