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 相关文章推荐
jquery与google map api结合使用 控件,监听器
Mar 04 Javascript
js下拉菜单语言选项简单实现
Sep 23 Javascript
picLazyLoad 实现图片延时加载(包含背景图片)
Jul 21 Javascript
jQuery实现表格隔行及滑动,点击时变色的方法【测试可用】
Aug 20 Javascript
RequireJs的使用详解
Feb 19 Javascript
vuejs+element-ui+laravel5.4上传文件的示例代码
Aug 12 Javascript
微信小程序实现拖拽 image 触摸事件监听的实例
Aug 17 Javascript
Vue ElementUI之Form表单验证遇到的问题
Aug 21 Javascript
webpack4 升级迁移的实现
Sep 12 Javascript
vue vantUI tab切换时 list组件不触发load事件的问题及解决方法
Feb 14 Javascript
JavaScript 空间坐标的使用
Aug 19 Javascript
vue中提示$index is not defined错误的解决方式
Sep 02 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
php解析url并得到url中的参数及获取url参数的四种方式
2015/10/26 PHP
php无限级分类实现方法分析
2016/10/19 PHP
jQuery 表单验证扩展代码(二)
2010/10/20 Javascript
从面试题学习Javascript 面向对象(创建对象)
2012/03/30 Javascript
jquery图片放大镜功能的实例代码
2013/03/26 Javascript
Js获取数组最大和最小值示例代码
2013/10/29 Javascript
JavaScript表单通过正则表达式验证电话号码
2014/03/14 Javascript
IE中图片的onload事件无效问题和解决方法
2014/06/06 Javascript
jquery实现的用户注册表单提示操作效果代码分享
2015/08/28 Javascript
30分钟快速掌握Bootstrap框架
2016/05/24 Javascript
js 截取或者替换字符串中的数字实现方法
2016/06/13 Javascript
使用Javascript监控前端相关数据的代码
2016/10/27 Javascript
JS基于递归实现倒计时效果的方法
2016/11/26 Javascript
JavaScript闭包_动力节点Java学院整理
2017/06/27 Javascript
gulp教程_从入门到项目中快速上手使用方法
2017/09/14 Javascript
jQuery 筛选器简单操作示例
2019/10/02 jQuery
javascript实现时间日期的格式化的方法汇总
2020/08/06 Javascript
python中的set实现不重复的排序原理
2018/01/24 Python
详解利用OpenCV提取图像中的矩形区域(PPT屏幕等)
2019/07/01 Python
python离线安装外部依赖包的实现
2020/02/13 Python
Python中的Cookie模块如何使用
2020/06/04 Python
Python使用lambda抛出异常实现方法解析
2020/08/20 Python
Python爬虫过程解析之多线程获取小米应用商店数据
2020/11/14 Python
CSS3打造磨砂玻璃背景效果
2016/09/28 HTML / CSS
html5通过canvas实现刮刮卡效果示例分享
2014/01/27 HTML / CSS
html5的canvas元素使用方法介绍(画矩形、画折线、圆形)
2014/04/14 HTML / CSS
全球采购的街头服饰和帽子:Urban Excess
2020/10/28 全球购物
Vrbo西班牙:预订您的度假公寓(公寓、乡村房屋…)
2020/04/27 全球购物
用C或者C++语言实现SOCKET通信
2015/02/24 面试题
简述使用ftp进行文件传输时的两种登录方式?它们的区别是什么?常用的ftp文件传输命令是什么?
2016/11/20 面试题
关于逃课的检讨书
2014/01/23 职场文书
家长对孩子评语
2014/01/30 职场文书
公司应聘求职信
2014/06/21 职场文书
不服从公司安排检讨书
2014/09/24 职场文书
家访教师心得体会
2016/01/23 职场文书
MySql开发之自动同步表结构
2021/05/28 MySQL