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 相关文章推荐
学习YUI.Ext 第三天
Mar 10 Javascript
js 页面输出值
Nov 30 Javascript
document.getElementBy("id")与$("#id")有什么区别
Sep 22 Javascript
js数组的操作指南
Dec 28 Javascript
js实现iPhone界面风格的单选框和复选框按钮实例
Aug 18 Javascript
基于JQuery和CSS3实现仿Apple TV海报背景视觉差特效源码分享
Sep 21 Javascript
原生js编写autoComplete插件
Apr 13 Javascript
javascript函数中的3个高级技巧
Sep 22 Javascript
hovertree插件实现二级树形菜单(简单实用)
Dec 28 Javascript
jQuery 中msgTips 顶部弹窗效果实现代码
Aug 14 jQuery
JavaScript进阶(二)词法作用域与作用域链实例分析
May 09 Javascript
vue实践---vue不依赖外部资源实现简单多语操作
Sep 21 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
Gregarius中文日期格式问题解决办法
2008/04/22 PHP
php更改目录及子目录下所有的文件后缀的代码
2010/09/24 PHP
php学习笔记之 函数声明(二)
2011/06/09 PHP
php导出excel格式数据问题
2014/03/11 PHP
php实现每天自动变换随机问候语的方法
2015/05/12 PHP
function, new function, new Function之间的区别
2007/03/08 Javascript
简单通用的JS滑动门代码
2008/12/19 Javascript
Jquery插件之打造自定义的select标签
2011/11/30 Javascript
javascript针对DOM的应用分析(四)
2012/04/15 Javascript
网页编辑器ckeditor和ckfinder配置步骤分享
2012/05/24 Javascript
javascript时间函数基础介绍
2013/03/28 Javascript
Javascript实现滑块滑动改变值的实现代码
2013/04/12 Javascript
浅析jquery ajax异步调用方法中不能给全局变量赋值的原因及解决方法
2014/01/10 Javascript
谷歌浏览器调试JavaScript小技巧
2014/12/29 Javascript
jquery.mobile 共同布局遇到的问题小结
2015/02/10 Javascript
浅谈setTimeout 与 setInterval
2015/06/23 Javascript
jQuery表格行上移下移和置顶的实现方法
2015/10/08 Javascript
最全的Javascript编码规范(推荐)
2016/06/22 Javascript
js实现精确到毫秒的倒计时效果
2016/08/05 Javascript
BootStrap轻松实现微信页面开发代码分享
2016/10/21 Javascript
Angularjs自定义指令Directive详解
2017/05/27 Javascript
解决betterScroll在vue中存在图片时,出现拉不动的问题
2018/09/27 Javascript
vue点击自增和求和的实例代码
2019/11/06 Javascript
Python中文分词实现方法(安装pymmseg)
2016/06/14 Python
python 队列详解及实例代码
2016/10/18 Python
Python实现的选择排序算法示例
2017/11/29 Python
HTML5 标准将把互联网视频扔回到黑暗时代
2010/02/10 HTML / CSS
实习老师个人总结的自我评价
2013/09/28 职场文书
国际贸易专业个人求职信范文分享
2013/12/14 职场文书
KTV的创业计划书范文
2014/02/02 职场文书
军训鉴定表自我鉴定
2014/02/13 职场文书
课外活动总结范文
2014/07/09 职场文书
网吧管理制度范本
2015/08/05 职场文书
一年之计:2019年下半年的计划
2019/05/07 职场文书
百善孝为先:关于孝道的经典语录
2019/10/18 职场文书
刚学完怎么用Python实现定时任务,转头就跑去撩妹!
2021/06/05 Python