您好,登錄后才能下訂單哦!
本文實例為大家分享了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
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持億速云。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。