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 相关文章推荐
js阻止冒泡及jquery阻止事件冒泡示例介绍
Nov 19 Javascript
纯js写的分页表格数据为json串
Feb 18 Javascript
jQuery实现当前页面标签高亮显示的方法
Mar 10 Javascript
js实现最短的XML格式化工具实例
Mar 12 Javascript
举例详解AngularJS中ngShow和ngHide的使用方法
Jun 19 Javascript
jQuery添加和删除输入文本框标签代码
May 20 Javascript
angular+ionic返回上一页并刷新页面
Aug 08 Javascript
深入理解Vue 的条件渲染和列表渲染
Sep 01 Javascript
深入浅析Vue中的slots/scoped slots
Apr 03 Javascript
vue中将html字符串转换成html后遇到的问题小结
Dec 10 Javascript
jQuery实现消息弹出框效果
Dec 10 jQuery
vue列表数据发生变化指令没有更新问题及解决方法
Jan 16 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 编写的 25个游戏脚本
2009/05/11 PHP
php中替换字符串中的空格为逗号','的方法
2014/06/09 PHP
php中static 静态变量和普通变量的区别
2016/12/01 PHP
php实现评论回复删除功能
2017/05/23 PHP
PHP开启目录引索+fancyindex漂亮目录浏览带搜索功能
2019/09/23 PHP
JavaScript 字符编码规则
2009/05/04 Javascript
javascript 设置某DIV区域内的checkbox复选框
2009/11/30 Javascript
js跑马灯代码(自写)
2013/04/17 Javascript
ExtJS4中的requires使用方法示例介绍
2013/12/03 Javascript
js获取窗口相对于屏幕左边和上边的位置坐标
2014/05/15 Javascript
jQuery实现跟随鼠标运动图层效果的方法
2015/02/02 Javascript
Nodejs学习item【入门手上】
2016/05/05 NodeJs
Jquery给当前页或者跳转后页面的导航栏添加选中后样式的实例
2016/12/08 Javascript
javascript监听页面刷新和页面关闭事件方法详解
2017/01/09 Javascript
jQuery中的类名选择器(.class)用法简单示例
2018/05/14 jQuery
vue实现组件之间传值功能示例
2018/07/13 Javascript
简单两步使用node发送qq邮件的方法
2019/03/01 Javascript
彻底揭秘keep-alive原理(小结)
2019/05/05 Javascript
vue+express+jwt持久化登录的方法
2019/06/14 Javascript
javascript实现摄像头拍照预览
2019/09/30 Javascript
javascript浅层克隆、深度克隆对比及实例解析
2020/02/09 Javascript
vue 子组件和父组件传值的示例
2020/09/11 Javascript
Python用zip函数同时遍历多个迭代器示例详解
2016/11/14 Python
Python实现的密码强度检测器示例
2017/08/23 Python
TensorFlow 合并/连接数组的方法
2018/07/27 Python
浅谈python下tiff图像的读取和保存方法
2018/12/04 Python
美国名牌手表折扣网站:Jomashop
2020/05/22 全球购物
Claire’s法国:时尚配饰、美容、珠宝、头发
2021/01/16 全球购物
毕业生就业推荐信范文
2013/12/01 职场文书
如何撰写岗位职责
2014/02/01 职场文书
学校节能宣传周活动总结
2014/07/09 职场文书
2016个人先进事迹材料范文
2016/03/01 职场文书
MySQL中distinct和count(*)的使用方法比较
2021/05/26 MySQL
dubbo服务整合zipkin详解
2021/07/26 Java/Android
redis复制有可能碰到的问题汇总
2022/04/03 Redis
DSP接收机前端设想
2022/04/05 无线电