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 控件事件小结
Oct 31 Javascript
JavaScript建立一个语法高亮输入框实现思路
Feb 26 Javascript
做好七件事帮你提升jQuery的性能
Feb 06 Javascript
Markdown+Bootstrap图片自适应属性详解
May 21 Javascript
js编写三级联动简单案例
Dec 21 Javascript
node.js 利用流实现读写同步,边读边写的方法
Sep 11 Javascript
JS实现点击链接切换显示隐藏内容的方法
Oct 19 Javascript
原生JS实现瀑布流插件
Feb 06 Javascript
JS扩展String.prototype.format字符串拼接的功能
Mar 09 Javascript
JS遍历DOM文档树的方法实例详解
Apr 03 Javascript
中高级前端必须了解的JS中的内存管理(推荐)
Jul 04 Javascript
JS实现商品橱窗特效
Jan 09 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
vBulletin HACK----关于排版的两个HACK
2006/10/09 PHP
解决PHPstudy Apache无法启动的问题【亲测有效】
2020/10/30 PHP
Ext grid 添加右击菜单
2009/11/26 Javascript
javascript中创建对象的三种常用方法
2010/12/30 Javascript
js写出遮罩层登陆框和对联广告并自动跟随滚动条滚动
2014/04/29 Javascript
在JavaScript中处理时间之getHours()方法的使用
2015/06/10 Javascript
快速学习jQuery插件 jquery.validate.js表单验证插件使用方法
2015/12/01 Javascript
省市二级联动小案例讲解
2016/07/24 Javascript
PHP实现记录代码运行时间封装类实例教程
2017/05/08 Javascript
canvas实现弧形可拖动进度条效果
2017/05/11 Javascript
微信小程序利用co处理异步流程的方法教程
2017/05/20 Javascript
基于 Vue 的树形选择组件的示例代码
2017/08/18 Javascript
详解node child_process模块学习笔记
2018/01/24 Javascript
redux中间件之redux-thunk的具体使用
2018/04/17 Javascript
Weex开发之地图篇的具体使用
2019/10/16 Javascript
Python生成验证码实例
2014/08/21 Python
Python文档生成工具pydoc使用介绍
2015/06/02 Python
Python 3.6 性能测试框架Locust安装及使用方法(详解)
2017/10/11 Python
Python采集代理ip并判断是否可用和定时更新的方法
2018/05/07 Python
解决pandas read_csv 读取中文列标题文件报错的问题
2018/06/15 Python
Python 读取某个目录下所有的文件实例
2018/06/23 Python
探秘TensorFlow 和 NumPy 的 Broadcasting 机制
2020/03/13 Python
解决python DataFrame 打印结果不换行问题
2020/04/09 Python
CSS3制作ajax loader icon实现思路及代码
2013/08/25 HTML / CSS
Coggles美国/加拿大:高级国际时装零售商
2018/10/23 全球购物
优秀求职信范文分享
2014/01/26 职场文书
产假请假条
2014/04/10 职场文书
软件项目开发计划书
2014/05/01 职场文书
超越自我演讲稿
2014/05/21 职场文书
学生会竞选演讲稿怎么写
2014/08/26 职场文书
银行员工犯错检讨书
2014/09/16 职场文书
师德师风建设整改措施思想汇报
2014/10/11 职场文书
初中信息技术教学计划
2015/01/22 职场文书
清明祭英烈活动总结
2015/05/11 职场文书
Redis调用Lua脚本及使用场景快速掌握
2022/03/16 Redis
日本十大血腥动漫,那些被禁播的动漫盘点
2022/03/21 日漫