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下高效拼装字符串的几种方法比较与测试代码
Apr 15 Javascript
再说AutoComplete自动补全之实现原理
Nov 05 Javascript
js中substr,substring,indexOf,lastIndexOf的用法小结
Dec 27 Javascript
如何实现chrome浏览器关闭页面时弹出“确定要离开此面吗?”
Mar 05 Javascript
JS实现仿苹果底部任务栏菜单效果代码
Aug 28 Javascript
JQuery操作textarea,input,select,checkbox方法
Sep 02 Javascript
AngularJS使用ng-Cloak阻止初始化闪烁问题的方法
Nov 03 Javascript
微信小程序多音频播放进度条问题
Aug 28 Javascript
微信小程序使用map组件实现检索(定位位置)周边的POI功能示例
Jan 23 Javascript
js实现登录时记住密码的方法分析
Apr 05 Javascript
js实现车辆管理系统
Aug 26 Javascript
解决elementui表格操作列自适应列宽
Dec 28 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遍历数组的4种方法总结
2014/07/05 PHP
PHP Imagick完美实现图片裁切、生成缩略图、添加水印
2016/02/22 PHP
原生JS实现Ajax通过GET方式与PHP进行交互操作示例
2018/05/12 PHP
PHP基于phpqrcode类生成二维码的方法示例详解
2020/08/07 PHP
Jquery刷新页面背景图片随机变换的实现方法
2013/03/15 Javascript
wap浏览自动跳转到wap页面的js代码
2014/05/17 Javascript
js网页右下角提示框实例
2014/10/14 Javascript
JS实现选中当前菜单后高亮显示的导航条效果
2015/10/15 Javascript
JS封装的三级联动菜单(使用时只需要一行js代码)
2016/10/24 Javascript
vue页面使用阿里oss上传功能的实例(二)
2017/08/09 Javascript
vue基于Element构建自定义树的示例代码
2017/09/19 Javascript
JS实现可视化文件上传
2018/09/08 Javascript
elementui之el-tebs浏览器卡死的问题和使用报错未注册问题
2019/07/06 Javascript
JavaScript实现打砖块游戏
2020/02/25 Javascript
python使用PyV8执行javascript代码示例分享
2013/12/04 Python
Python中正则表达式的用法实例汇总
2014/08/18 Python
python进阶之多线程对同一个全局变量的处理方法
2018/11/09 Python
eclipse创建python项目步骤详解
2019/05/10 Python
django框架基于模板 生成 excel(xls) 文件操作示例
2019/06/19 Python
Python实现仿射密码的思路详解
2020/04/23 Python
打印tensorflow恢复模型中所有变量与操作节点方式
2020/05/26 Python
Python小白学习爬虫常用请求报头
2020/06/03 Python
Python flask框架实现查询数据库并显示数据
2020/06/04 Python
css和css3弹性盒模型实现元素宽度(高度)自适应
2019/05/15 HTML / CSS
HTML5仿手机微信聊天界面
2016/03/18 HTML / CSS
圣彼得堡鲜花配送:Semicvetic
2020/09/15 全球购物
求职推荐信范文
2013/12/01 职场文书
中学生爱国演讲稿
2013/12/31 职场文书
《值日生》教学反思
2014/02/17 职场文书
护士长竞聘演讲稿
2014/04/30 职场文书
我的小天地教学反思
2014/04/30 职场文书
市场开发与营销专业求职信范文
2014/05/01 职场文书
2014领导班子“四风问题”对照检查材料思想汇报(执法局)
2014/09/21 职场文书
贪污检举信范文
2015/03/02 职场文书
索尼ICF-36收音机评测
2022/04/30 无线电
nginx实现多geoserver服务的负载均衡
2022/05/15 Servers