Vue formData实现图片上传


Posted in Javascript onAugust 20, 2019

本文实例为大家分享了Vue formData实现图片上传的具体代码,供大家参考,具体内容如下

import Vue from 'vue'
 
/**
 * 图片上传
 * 已注入所有Vue实例,
 * template模板里调用 $uploadFile(id)
 * 组件方法里调用 this.$uploadFile(id)
 */
const uploadFile = (id) => {
 let promise = new Promise((resolve, reject) => {
  let file = null
  let el = null
  let i = 0
  let formData = new FormData()
  document.getElementById(id).click()
  el = document.getElementById(id)
  el.addEventListener('change', function (e) {
   i++
   if (i !== 1) {
    return false
   } else {
    file = this.files[0]
    formData.append('file', file)
    formData.append('fileType', 'IMAGE')
    // 数据请求
    Vue.axiosfrom(Vue.api.upload, formData).then(res => {
     // 返回图片url
     resolve(res)
    }).catch(err => {
     reject(err)
    })
   }
  })
 })
 return promise
}
 
Vue.prototype.$uploadFile = uploadFile

axios请求头设置

import Vue from 'vue'
import { baseURL } from '@/config/env'
import axios from 'axios'
 
// formdata 请求
const axiosT = axios.create({
 baseURL: baseURL,
 headers: {
  'Content-Type': 'multipart/form-data'
 }
})
 
const XHR = ({method = 'post', qs = true, loading = false, loginRequire = true, reqComplex = false, reqContentType = 'urlencoded'}) => {
 // 带请求进度条成功方法
 const sucFunX = res => {
  return res.data
 }
 // 成功执行方法
 const sucFunC = res => {
  return res.data
 }
 // 带请求进度条失败方法
 const errFunX = err => {
  console.log(err, NProgress.done())
 }
 // 失败执行访求
 const errFunC = err => {
  console.log(err)
 }
 // 判断是否需要Longing
 const sucFun = loading ? sucFunX : sucFunC
 // 判断是否需要Longing
 const errFun = loading ? errFunX : errFunC
 return {user, sucFun, errFun}
}
 
// 表单请求 图片上传
const axiosfrom = function (url = '', data = {}) {
 let {sucFun, errFun} = XHR({loading: false})
 return axiosT.post(url, data).then(sucFun).catch(errFun)
}
// 表单请求
Vue.prototype.$axiosfrom = axiosfrom
Vue.axiosfrom = axiosfrom

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

Javascript 相关文章推荐
图片连续滚动代码[兼容IE/firefox]
Jun 11 Javascript
js实现的点击div区域外隐藏div区域
Jun 30 Javascript
分享我的jquery实现下拉菜单心的
Nov 29 Javascript
JS遍历数组及打印数组实例分析
Jan 21 Javascript
Javascript中 带名 匿名 箭头函数的重要区别(推荐)
Jan 29 Javascript
websocket+node.js实现实时聊天系统问题咨询
May 17 Javascript
详解使用React全家桶搭建一个后台管理系统
Nov 04 Javascript
vue打包使用Nginx代理解决跨域问题
Aug 27 Javascript
vue使用echarts图表的详细方法
Oct 22 Javascript
PWA介绍及快速上手搭建一个PWA应用的方法
Jan 27 Javascript
vue中使用 pako.js 解密 gzip加密字符串的方法
Jun 10 Javascript
javascript利用键盘控制小方块的移动
Apr 20 Javascript
Angular8 Http拦截器简单使用教程
Aug 20 #Javascript
vue实现axios图片上传功能
Aug 20 #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
You might like
比较详细PHP生成静态页面教程
2012/01/10 PHP
php命名空间学习详解
2014/02/27 PHP
PHP安装GeoIP扩展根据IP获取地理位置及计算距离的方法
2016/07/01 PHP
PHP封装的非对称加密RSA算法示例
2018/05/28 PHP
JavaScript 自动分号插入(JavaScript synat:auto semicolon insertion)
2009/11/04 Javascript
js下写一个事件队列操作函数
2010/07/19 Javascript
jquery实现弹出层遮罩效果的简单实例
2014/03/03 Javascript
Javascript中神奇的this
2016/01/20 Javascript
JavaScript性能优化之函数节流(throttle)与函数去抖(debounce)
2016/08/11 Javascript
理解JavaScript原型链
2016/10/25 Javascript
js 作用域和变量详解
2017/02/16 Javascript
JS随机排序数组实现方法分析
2017/10/11 Javascript
使用node搭建自动发图文微博机器人的方法
2019/03/22 Javascript
javascript 关于赋值、浅拷贝、深拷贝的个人理解
2019/11/01 Javascript
基于JS实现快速读取TXT文件
2020/08/25 Javascript
[02:22]完美世界DOTA2联赛PWL S3 集锦第一期
2020/12/15 DOTA
python切换hosts文件代码示例
2013/12/31 Python
python实现决策树、随机森林的简单原理
2018/03/26 Python
Python八大常见排序算法定义、实现及时间消耗效率分析
2018/04/27 Python
详解python-图像处理(映射变换)
2019/03/22 Python
详解Open Folder as PyCharm Project怎么添加的方法
2020/12/29 Python
CSS3不透明度实例讲解
2016/04/26 HTML / CSS
SISLEY希思黎官方旗舰店:享誉全球的奢华植物美容品牌
2018/04/25 全球购物
LN-CC美国:伦敦时尚生活的缩影
2019/02/19 全球购物
意大利咖啡、浓缩咖啡和浓缩咖啡机:illy caffe
2019/03/20 全球购物
一组SQL面试题
2016/02/15 面试题
大学生的网络创业计划书
2013/12/26 职场文书
领导视察欢迎词
2014/01/15 职场文书
2014年国庆节庆祝建国65周年比赛演讲稿
2014/09/21 职场文书
开展党的群众路线教育实践活动总结报告
2014/10/31 职场文书
个人求职自荐信范文
2015/03/06 职场文书
试用期自我评价怎么写
2015/03/10 职场文书
战马观后感
2015/06/08 职场文书
创业计划书之熟食店
2019/10/16 职场文书
uniapp开发小程序的经验总结
2021/04/08 Javascript
Vue 打包后相对路径的引用问题
2022/06/05 Vue.js