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 相关文章推荐
我遇到的参数传递中 双引号单引号嵌套问题
Feb 11 Javascript
JavaScript DOM学习第六章 表单实例
Feb 19 Javascript
禁止IE用右键的JS代码
Dec 30 Javascript
javascript实现鼠标拖动改变层大小的方法
Apr 30 Javascript
百度坐标(BD09)、国测局坐标(火星坐标,GCJ02)、和WGS84坐标系之间的转换
Feb 19 Javascript
js组件SlotMachine实现图片切换效果制作抽奖系统
Apr 17 Javascript
JavaScript进阶练习及简单实例分析
Jun 03 Javascript
AngularJS日期格式化常见操作实例分析
May 17 Javascript
vue2实现搜索结果中的搜索关键字高亮的代码
Aug 29 Javascript
layui问题之渲染数据表格时,仅出现10条数据的解决方法
Sep 12 Javascript
简单实现节流函数和防抖函数过程解析
Oct 08 Javascript
关于JavaScript 中 if包含逗号表达式
Nov 27 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
Zend framework处理一个http请求的流程分析
2010/02/08 PHP
yii2实现根据时间搜索的方法
2016/05/25 PHP
php strftime函数获取日期时间(switch用法)
2018/05/16 PHP
Javascript里使用Dom操作Xml
2006/09/20 Javascript
比较简单实用的使用正则三种版本的js去空格处理方法
2007/11/18 Javascript
DB.ASP 用Javascript写ASP很灵活很好用很easy
2011/07/31 Javascript
基于jquery的图片轮播 tab切换组件
2012/07/19 Javascript
JS获得QQ号码的昵称,头像,生日的简单实例
2013/12/04 Javascript
Node调试工具JSHint的安装及配置教程
2014/05/27 Javascript
JavaScript获取页面中第一个锚定文本的方法
2015/04/03 Javascript
jquery淡入淡出效果简单实例
2016/01/14 Javascript
JavaScript设计模式经典之工厂模式
2016/02/24 Javascript
AngularJS轻松实现双击排序的功能
2016/08/30 Javascript
jQuery grep()方法详解及实例代码
2016/10/30 Javascript
详解vue的数据binding绑定原理
2017/04/12 Javascript
vue语法之拼接字符串的示例代码
2017/10/25 Javascript
微信小程序使用audio组件播放音乐功能示例【附源码下载】
2017/12/08 Javascript
浅谈Vue初学之props的驼峰命名
2018/07/19 Javascript
原生JS利用transform实现banner的无限滚动示例代码
2020/06/15 Javascript
Nodejs环境实现socket通信过程解析
2020/07/03 NodeJs
如何通过vscode运行调试javascript代码
2020/07/24 Javascript
vue.js页面加载执行created,mounted的先后顺序说明
2020/11/07 Javascript
Python判断变量是否为Json格式的字符串示例
2017/05/03 Python
查看django执行的sql语句及消耗时间的两种方法
2018/05/29 Python
详解python配置虚拟环境
2019/04/08 Python
Python实现决策树并且使用Graphviz可视化的例子
2019/08/09 Python
python图片二值化提高识别率代码实例
2019/08/24 Python
Intimissimi德国网上商店:意大利知名内衣品牌
2018/04/03 全球购物
Vivo俄罗斯官方在线商店:中国智能手机品牌
2019/10/04 全球购物
Harrods英国:世界领先的奢侈品百货商店
2020/09/23 全球购物
绩效工资实施方案
2014/03/15 职场文书
教师节标语大全
2014/10/07 职场文书
介绍信范文
2015/01/31 职场文书
2015年语文教研组工作总结
2015/05/23 职场文书
农村老人去世追悼词
2015/06/23 职场文书
2016年党员创先争优承诺书
2016/03/25 职场文书