vue+element-ui+axios實(shí)現(xiàn)圖片上傳
更新時(shí)間:2019年08月20日 11:12:38 作者:何必詩債換酒錢
這篇文章主要為大家詳細(xì)介紹了vue+element-ui+axios實(shí)現(xiàn)圖片上傳,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
本文實(shí)例為大家分享了vue+element-ui+axios實(shí)現(xiàn)圖片上傳的具體代碼,供大家參考,具體內(nèi)容如下
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"> <title>Examples</title> <meta name="description" content=""> <meta name="keywords" content=""> <!-- 引入vue --> <script src="https://cdn.jsdelivr.net/npm/vue"></script> <!-- 引入axios --> <script src="https://unpkg.com/axios/dist/axios.min.js"></script> <!-- 引入樣式 --> <link rel="stylesheet" href=https://unpkg.com/element-ui/lib/theme-chalk/index.css > <!-- 引入組件庫 --> <script src="https://unpkg.com/element-ui/lib/index.js"></script> </head> <body> <div id="app"> <el-upload :action="posterUrl" :before-upload="beforeUpload" :http-request="(params)=>uploadImage(params)" :on-remove="(file, fileList)=>removeImage(file, fileList)" list-type="picture" accept="image/*" > <el-button size="small">選擇圖片</el-button> </el-upload> </div> <script type="text/javascript"> new Vue({ el: '#app', data: { posterUrl: '', imgUrls: [], imgWidth: '320', imgHeight: '400', }, methods: { beforeUpload(file) { let _this = this; let _checkSize = false; //是否需要指定上傳圖片的尺寸 if(file.size > 1024*500) { //大小超過500kb _this.$message.error('圖片太大,請(qǐng)重新選擇'); return false; } const isSize = new Promise((resolve, reject)=>{ let _URL = window.URL || window.webkitURL; let img = new Image(); img.onload = function () { if(!_checkSize || (_checkSize && img.width==_this.imgWidth && img.height==_this.imgHeight)) { resolve(); } else { reject(); } } img.src = _URL.createObjectURL(file); }).then(()=>{ return file; }, ()=>{ _this.$message.error('圖片尺寸不對(duì),請(qǐng)重新選擇'); return Promise.reject(); }); return isSize; }, uploadImage(params) { console.log(params); let uploadData = new FormData(); uploadData.append('file', params.file); let config = { headers: { 'Content-Type': 'multipart/form-data' } }; this.uploadPoster('homed'+new Date().getTime()+'/'+params.file.name, uploadData, config) .then(res=>{ if(res.status == 200) { params.onSuccess(); this.imgUrls.push({name:params.file.name, url:res.data.url}); console.log(this.imgUrls); } }).catch(error=>{ params.onError(); this.$message.error('上傳失敗'); }); }, removeImage(file, fileList) { console.log(fileList); }, uploadPoster(url, obj, config) { let poster_upload_path = "http://xxxxxxxxxxxx/httpdocsup/poster/news/"; return axios.post(poster_upload_path+url, obj, config); } } }) </script> </body> </html>
以上就是本文的全部內(nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
在vue中對(duì)數(shù)組值變化的監(jiān)聽與重新響應(yīng)渲染操作
這篇文章主要介紹了在vue中對(duì)數(shù)組值變化的監(jiān)聽與重新響應(yīng)渲染操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2020-07-07Vue中對(duì)拿到的數(shù)據(jù)進(jìn)行A-Z排序的實(shí)例
今天小編就為大家分享一篇Vue中對(duì)拿到的數(shù)據(jù)進(jìn)行A-Z排序的實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2018-09-09vuejs element table 表格添加行,修改,單獨(dú)刪除行,批量刪除行操作
這篇文章主要介紹了vuejs element table 表格添加行,修改,單獨(dú)刪除行,批量刪除行操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2020-07-07vue3源碼分析reactivity實(shí)現(xiàn)原理
這篇文章主要為大家介紹了vue3源碼分析reactivity實(shí)現(xiàn)原理詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-01-01