Vue+UpLoad實(shí)現(xiàn)上傳預(yù)覽和刪除圖片的實(shí)踐
1、用vue+Element完成一個(gè)圖片上傳、點(diǎn)圖預(yù)覽、加刪除功能,如圖:

2.首先我們?cè)俳M件中引入這一段代碼,每個(gè)屬性的使用也都放在這里了:
<el-upload
class="upload-demo"
action=""http://引號(hào)里面填要上傳的圖片地址,用接口的話是公共的接口地址拼接一個(gè)圖片的接口
:on-preview="handlePreview"http://圖片已經(jīng)上傳完成時(shí)點(diǎn)擊觸發(fā)(鉤子函數(shù))
:on-remove="handleRemove"http://點(diǎn)擊右上角X號(hào)觸發(fā)的鉤子函數(shù)
:on-success="handleSuccess"http://上傳成功的一個(gè)鉤子函數(shù)
:file-list="fileList"http://上傳的文件列表
list-type="picture"http://上傳的文件類型,有三個(gè)參數(shù),分別是text/picture/picture-card,分別是文本類型、圖片類型、卡片類型。個(gè)人推薦選第二個(gè)較好
:headers="headerObj"http://圖片上傳的時(shí)候需要請(qǐng)求頭部,我們可以定義一個(gè)變量,設(shè)置獲取token信息,如下代碼:
>
<el-button size="small" type="primary">點(diǎn)擊上傳</el-button>
<div slot="tip" class="el-upload__tip">只能上傳jpg/png文件,且不超過500kb</div>
</el-upload>
//存放token的變量
headerObj: {
Authorization: window.localStorage.getItem("token"),
},3.接下來(lái)就是它的on-preview屬性,我們可以用它來(lái)實(shí)現(xiàn)圖片預(yù)覽
先要設(shè)一個(gè)圖片預(yù)覽的彈框:
<el-dialog
title="圖片預(yù)覽"http://上方的標(biāo)題
:visible.sync="previewDialogVisible"http://控制顯示隱藏的變量
width="50%"http://彈框的寬度占比
>
//img標(biāo)簽中的src屬性接受的是點(diǎn)擊預(yù)覽時(shí)傳遞的圖片地址
<img :src="picPreviewPath" alt="" class="previewImg" />
</el-dialog>再進(jìn)行邏輯操作
// 處理圖片預(yù)覽
handlePreview(file) {//會(huì)得到一個(gè)參數(shù),這是返回的圖片的一些信息,主要的是圖片的url
this.picPreviewPath = file.response.data.url;//把url參數(shù)賦值給這個(gè)變量
this.previewDialogVisible = true;//再讓彈框顯示
},3.然后來(lái)實(shí)現(xiàn)點(diǎn)擊刪除圖片,這時(shí)候用到了on-remove這個(gè)屬性
// 處理移除圖片的操作
handleRemove(file) {
// 1.獲取將要?jiǎng)h除圖片的臨時(shí)路徑
const filePath = file.response.data.tmp_path;
// 2.從pics數(shù)組中,找到圖片對(duì)應(yīng)的索引值
const i = this.addForm.pics.findIndex((x) => x.pic === filePath);
// 3.調(diào)用splice方法,移除圖片信息
this.addForm.pics.splice(i, 1);
},4.前面的功能都實(shí)現(xiàn)了的話,到這時(shí)候你已經(jīng)成功了一半了,若項(xiàng)目需要提交添加的圖片,則用到了它的on-success屬性。
// 監(jiān)聽圖片上傳成功事件
handleSuccess(response) {
// 1.拼接得到一個(gè)圖片信息對(duì)象 臨時(shí)路徑
const picInfo = { pic: response.data.tmp_path };
// 2.將圖片信息對(duì)象,push到pics數(shù)組中
this.addForm.pics.push(picInfo);
},5.文章小提示:
1.別忘了給需要設(shè)置成動(dòng)態(tài)屬性的屬性加上v-bind
2.在data中注冊(cè)需要綁定的變量
到此這篇關(guān)于Vue+UpLoad實(shí)現(xiàn)上傳預(yù)覽和刪除圖片的文章就介紹到這了,更多相關(guān)Vue UpLoad 上傳預(yù)覽和刪除圖片內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- 解決vue2.0 element-ui中el-upload的before-upload方法返回false時(shí)submit()不生效問題
- Vue上傳組件vue Simple Uploader的用法示例
- vue2.0 使用element-ui里的upload組件實(shí)現(xiàn)圖片預(yù)覽效果方法
- vue element upload組件 file-list的動(dòng)態(tài)綁定實(shí)現(xiàn)
- Vue2.0結(jié)合webuploader實(shí)現(xiàn)文件分片上傳功能
- vue-cli3.0+element-ui上傳組件el-upload的使用
- vue element upload實(shí)現(xiàn)圖片本地預(yù)覽
- vue使用el-upload上傳文件及Feign服務(wù)間傳遞文件的方法
- vue中element 的upload組件發(fā)送請(qǐng)求給后端操作
相關(guān)文章
Vue3+TS實(shí)現(xiàn)動(dòng)態(tài)路由權(quán)限的示例詳解
當(dāng)我們?cè)陂_發(fā)一個(gè)大型的前端應(yīng)用時(shí),動(dòng)態(tài)路由權(quán)限是一個(gè)必不可少的功能,本文將介紹如何使用Vue 3和TypeScript來(lái)實(shí)現(xiàn)動(dòng)態(tài)路由權(quán)限,希望對(duì)大家有所幫助2024-01-01
Vue中v-form標(biāo)簽里的:rules作用及定義方法
文章介紹了在Vue項(xiàng)目中使用ElementUI或ElementPlus組件庫(kù)時(shí),如何通過`el-form`標(biāo)簽的`:rules`屬性進(jìn)行表單驗(yàn)證,`:rules`屬性用于定義表單項(xiàng)的驗(yàn)證規(guī)則,包括必填項(xiàng)、格式校驗(yàn)、長(zhǎng)度限制等,文章還展示了如何定義基本驗(yàn)證規(guī)則和自定義驗(yàn)證函數(shù),感興趣的朋友一起看看吧2025-03-03
Vue?Echarts實(shí)現(xiàn)多功能圖表繪制的示例詳解
作為前端人員,日常圖表、報(bào)表、地圖的接觸可謂相當(dāng)頻繁,今天小編隆重退出前端框架之VUE結(jié)合百度echart實(shí)現(xiàn)中國(guó)地圖+各種圖表的展示與使用;作為“你值得擁有”專欄階段性末篇,值得一看2023-02-02
vue的props實(shí)現(xiàn)子組件隨父組件一起變化
這篇文章主要為大家詳細(xì)介紹了vue的props如何實(shí)現(xiàn)子組件隨父組件一起變化,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2016-10-10
使用Vite+Vue3+TypeScript?搭建開發(fā)腳手架的詳細(xì)過程
這篇文章主要介紹了Vite+Vue3+TypeScript?搭建開發(fā)腳手架的詳細(xì)過程,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2023-02-02
Vue重要修飾符.sync對(duì)比v-model的區(qū)別及使用詳解
這篇文章主要為大家介紹了Vue中重要修飾符.sync與v-model的區(qū)別對(duì)比及使用詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-07-07

