在用iview的upload上傳圖片的時候,想要實現圖片的預覽。 可是在iview給的例子中,是每上傳一個圖片觸發一次上傳事件,調一次接口,後臺將圖片存入數據庫,再回傳給前端,這樣實現圖片在前端的顯示。
這個方法對於上傳多張圖片,無疑很不現實。前端
因而就有了下面的方法。
想要實現上傳多張圖片,上傳的圖依次顯示出來,點擊提交,實現同時上傳,只調一次接口,後臺一次性將多張圖片存入數據庫。數據庫
在圖片上傳前 'handleBeforeUpload' 事件中加入如下代碼,獲取的_base64即爲本地圖片的絕對路徑,將其存起來,在賦值到img的src路徑,便可實現圖片在上傳前的顯示,實現圖片的預覽iview
const reader = new FileReader() reader.readAsDataURL(file) reader.onload = () => { const _base64 = reader.result console.log(_base64) }
總體代碼copythis
//圖片上傳前事件 handleBeforeUpload (file) { this.file = file //須要傳給後臺的file文件 const reader = new FileReader() reader.readAsDataURL(file) reader.onload = () => { const _base64 = reader.result this.imgUrl = _base64 //將_base64賦值給圖片的src,實現圖片預覽 } return false//阻止圖片繼續上傳,使得form表單提交時統一上傳 }