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 相关文章推荐
文本框的字数限制功能jquery插件
Nov 24 Javascript
js 数据类型转换总结笔记
Jan 17 Javascript
通过隐藏iframe实现文件下载的js方法介绍
Feb 26 Javascript
用jQuery toggleClass 实现鼠标移上变色
May 14 Javascript
jquery统计用户选中的复选框的个数
Jun 06 Javascript
使用JavaScript根据图片获取条形码的方法
Jul 04 Javascript
使用SVG基本操作API的实例讲解
Sep 14 Javascript
Webstorm2016使用技巧(SVN插件使用)
Oct 29 Javascript
微信小程序的开发范式BeautyWe.js入门详解
Jul 10 Javascript
微信小程序实现页面跳转传递参数(实体,对象)
Aug 12 Javascript
基于JavaScript实现表格隔行换色
May 08 Javascript
vue 函数调用加括号与不加括号的区别
Oct 29 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实现ODBC数据分页显示一例
2006/10/09 PHP
php实现utf-8转unicode函数分享
2015/01/06 PHP
php的sso单点登录实现方法
2015/01/08 PHP
vmware linux系统安装最新的php7图解
2019/04/14 PHP
javascript 动态数据下的锚点错位问题解决方法
2008/12/24 Javascript
JQuery 插件模板 制作jquery插件的朋友可以参考下
2010/03/17 Javascript
javascript之学会吝啬 精简代码
2010/04/25 Javascript
浅析hasOwnProperty方法的应用
2013/11/20 Javascript
javascript计算用户打开网页的停留时间
2014/01/09 Javascript
jquery实现美观的导航菜单鼠标提示特效代码
2015/09/06 Javascript
谈谈JavaScript自定义回调函数
2015/10/18 Javascript
跟我学习javascript的严格模式
2015/11/16 Javascript
整理AngularJS框架使用过程当中的一些性能优化要点
2016/03/05 Javascript
jQuery使用Layer弹出层插件闪退问题
2016/12/22 Javascript
浅谈jQuery的bind和unbind事件(绑定和解绑事件)
2017/03/02 Javascript
使用Xcache缓存器加速PHP网站的配置方法
2017/04/22 Javascript
jQuery常见面试题之DOM操作详析
2017/07/05 jQuery
vue 录制视频并压缩视频文件的方法
2018/07/27 Javascript
layui 图片上传+表单提交+ Spring MVC的实例
2019/09/21 Javascript
Layer组件多个iframe弹出层打开与关闭及参数传递的方法
2019/09/25 Javascript
JS深入学习之数组对象排序操作示例
2020/05/01 Javascript
通过实例解析json与jsonp原理及使用方法
2020/09/27 Javascript
基于JavaScript实现随机点名器
2021/02/25 Javascript
Python中使用socket发送HTTP请求数据接收不完整问题解决方法
2015/02/04 Python
Tensorflow实现AlexNet卷积神经网络及运算时间评测
2018/05/24 Python
python实现指定字符串补全空格、前面填充0的方法
2018/11/16 Python
Python3实现腾讯云OCR识别
2018/11/27 Python
python创建子类的方法分析
2019/11/28 Python
一款CSS3实现多功能下拉菜单(带分享按)的教程
2014/11/05 HTML / CSS
CSS3的column-fill属性对齐列内容高度的用法详解
2016/07/01 HTML / CSS
土耳其玩具商店:Toyzz Shop
2019/08/02 全球购物
Gretna Green中文官网:苏格兰格林小镇
2019/10/16 全球购物
Vita Fede官网:在意大利手工制作,在纽约市设计
2019/10/25 全球购物
建筑施工员岗位职责
2013/11/26 职场文书
创业计划书之零食店(进口)
2019/09/24 职场文书
原型和原型链 prototype和proto的区别详情
2021/11/02 Javascript