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 动态添加按钮实现代码
May 06 Javascript
jQuery拖动div、移动div、弹出层实现原理及示例
Apr 08 Javascript
js动态添加表格数据使用insertRow和insertCell实现
May 22 Javascript
JavaScript sup方法入门实例(把字符串显示为上标)
Oct 20 Javascript
JavaScript编程中容易出BUG的几点小知识
Jan 31 Javascript
基于javascript如何传递特殊字符
Nov 30 Javascript
浅谈DOM的操作以及性能优化问题-重绘重排
Jan 08 Javascript
Angular4学习笔记之实现绑定和分包
Aug 01 Javascript
vue路由跳转时判断用户是否登录功能的实现
Oct 26 Javascript
浅谈express.js框架中间件(middleware)
Apr 07 Javascript
ionic4+angular7+cordova上传图片功能的实例代码
Jun 19 Javascript
layui文件上传控件带更改后数据传值的方法
Sep 23 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常用函数 推荐收藏保存
2010/02/21 PHP
php下清空字符串中的HTML标签的代码
2010/09/06 PHP
PHP数据流应用的一个简单实例
2012/09/14 PHP
phpStudy访问速度慢和启动失败的解决办法
2015/11/19 PHP
ThinkPHP框架表单验证操作方法
2017/07/19 PHP
真正的JQuery.ajax传递中文参数的解决方法
2011/05/28 Javascript
js动态修改input输入框的type属性(实现方法解析)
2013/11/13 Javascript
js调试系列 断点与动态调试[基础篇]
2014/06/18 Javascript
浅谈JS日期(Date)处理函数
2014/12/07 Javascript
JavaScript实现向setTimeout执行代码传递参数的方法
2015/04/16 Javascript
原生js实现jquery函数animate()动画效果的简单实例
2016/08/21 Javascript
工厂模式在JS中的实践
2017/01/18 Javascript
JavaScript登录记住密码操作(超简单代码)
2017/03/22 Javascript
使用JS获取SessionStorage的值
2018/01/12 Javascript
Angularjs 根据一个select的值去设置另一个select的值方法
2018/08/13 Javascript
Vue实现将数据库中带html标签的内容输出(原始HTML(Raw HTML))
2019/10/28 Javascript
[01:15]PWL S2开团时刻第二期——他们杀 我就白给
2020/11/25 DOTA
Python使用ftplib实现简易FTP客户端的方法
2015/06/03 Python
python 中字典嵌套列表的方法
2018/07/03 Python
python实现向微信用户发送每日一句 python实现微信聊天机器人
2019/03/27 Python
对Python中一维向量和一维向量转置相乘的方法详解
2019/08/26 Python
使用Python第三方库pygame写个贪吃蛇小游戏
2020/03/06 Python
Django model.py表单设置默认值允许为空的操作
2020/05/19 Python
用python对excel进行操作(读,写,修改)
2020/12/25 Python
Python读取ini配置文件传参的简单示例
2021/01/05 Python
TensorFlow低版本代码自动升级为1.0版本
2021/02/20 Python
HTML中fieldset标签概述及使用方法
2013/02/01 HTML / CSS
澳大利亚票务和娱乐市场领导者:Ticketmaster
2017/03/03 全球购物
Noon埃及:埃及在线购物
2019/11/26 全球购物
软件测试英文面试题
2012/10/14 面试题
班级聚会策划书
2014/01/16 职场文书
离职证明范本(5篇)
2014/09/19 职场文书
幼儿园庆元旦主持词
2015/07/06 职场文书
《雪地里的小画家》教学反思
2016/02/16 职场文书
使用pipenv管理python虚拟环境的全过程
2021/09/25 Python
聊聊redis-dump工具安装问题
2022/01/18 Redis