Ant-Design-Vue 自定義上傳和圖片預覽功能
前端頁面程式碼部分
<template>
<a-upload list-type="picture-card" :customRequest="imgAdd" :remove="imgDel"
:file-list="fileList" @preview="handlePreview" @change="handleChange">
<div v-if="fileList.length < 9">
<a-icon type="plus" />
<div class="ant-upload-text">
上傳
</div>
</div>
</a-upload>
<a-modal :visible="previewVisible" :footer="null" @cancel="handleCancel">
<img alt="example" style="width: 100%" :src="previewImage" />
</a-modal>
</template>
<script>
import {
uploadFile // 封裝了上傳檔案介面
} from "../../api/file";
// function getBase64(file) {
// return new Promise((resolve, reject) => {
// const reader = new FileReader();
// reader.readAsDataURL(file);
// reader.onload = () => resolve(reader.result);
// reader.onerror = error => reject(error);
// });
// }
export default {
data() {
return {
previewVisible: false,
previewImage: '',
fileList: [],
}
},
methods: {
// 上傳圖片
imgAdd(data) {
let formdata = new FormData()
formdata.append('file', data.file)
uploadFile(formdata).then(res => {
if (res.code === 200) { // 上傳成功時(自己封裝了response)
data.onSuccess(res.data);
}else {
data.onError();
}
})
},
// 刪除圖片
imgDel(file) {
this.fileList.splice(this.fileList.indexOf(file), 1);
},
// 關閉模態框
handleCancel() {
this.previewVisible = false;
},
// 開啟模態框(圖片預覽)
async handlePreview(file) {
console.log(file);
// if (!file.url && !file.preview) {
// file.preview = await getBase64(file.originFileObj);
// }
// this.previewImage = file.url || file.preview;
this.previewImage = file.response.path;
this.previewVisible = true;
},
// 修改檔案?沒用到
handleChange({
fileList
}) {
this.fileList = fileList;
},
}
}
</script>
各功能介紹
一、自定義上傳(:customRequest=“imgAdd”)
上傳中成功時必須執行 data.onSuccess() ,這樣才能讓正在上傳的圖片呈現為上傳成功狀態,不然會一直顯示在上傳中。
該方法可以新增 請求介面的response 為引數,
這樣可以設定 fileList 中檔案的 response :
除了 onSuccess() 方法外,還有 onError() 方法,該方法使上傳的圖片呈現為上傳失敗狀態。還有 onProcess() 方法,但是博主沒有試出來它的用處。
二、圖片預覽
博主註釋的兩個部分是第一種圖片載入方法,採用 Base64 的載入方法,載入“本地檔案”。
第二種方法是載入圖片的 url ,該 url 是博主後端給出的檔案下載介面。
相關文章
- PHP仿微信多圖片預覽上傳功能PHP
- vue圖片預覽上傳Vue
- js圖片上傳預覽JS
- 自定義上傳圖片拼圖遊戲遊戲
- 短視訊平臺開發,圖片上傳和圖片預覽功能實現
- input file上傳圖片預覽
- Typora中自定義命令上傳圖片
- javauploadify上傳圖片並預覽Java
- jQuery圖片上傳前先在本地預覽jQuery
- jsp+springmvc實現檔案上傳、圖片上傳和及時預覽圖片JSSpringMVC
- 菜鳥學JS(一)——上傳圖片之上傳前預覽圖片JS
- 上傳圖片本地預覽例項程式碼
- 圖片上傳預覽效果程式碼例項
- javascript和HTML5上傳圖片之前實現預覽效果JavaScriptHTML
- 相容所有瀏覽器的圖片上傳本地預覽效果瀏覽器
- FileReader()讀取檔案、圖片上傳預覽
- angularjs 實現圖片上傳實時預覽AngularJS
- WebView自定義長按圖片功能WebView
- GKPhotoBrowser--自定義圖片瀏覽器瀏覽器
- Java上傳檔案到遠端伺服器和瀏覽器預覽圖片Java伺服器瀏覽器
- FileReader初步使用實現上傳圖片預覽效果
- SpringMVC實現ajax上傳圖片實時預覽SpringMVC
- 直播電商平臺開發,釋出多圖片上傳到伺服器並實現圖片預覽功能伺服器
- 基於 vue.js 實現圖片本地預覽 + 裁剪 + 壓縮 + 上傳的功能(二)Vue.js
- js上傳圖片預覽,相容IE6以上各大主流瀏覽器JS瀏覽器
- vue 本地預覽多圖上傳Vue
- 自定義檔案上傳功能實現方法
- 前端實現圖片上傳預覽並轉換base64前端
- JS相容各個瀏覽器的本地圖片上傳即時預覽效果JS瀏覽器地圖
- AntD框架的upload元件上傳圖片時使用customRequest方法自定義上傳行為框架元件
- HTML5可預覽多圖片ajax上傳(使用formData傳遞資料)HTMLORM
- 安卓自定義View實現圖片上傳進度顯示(仿QQ)安卓View
- FileReader與URL.createObjectURL實現圖片、視訊上傳預覽Object
- uniapp實戰——完成圖片的預覽功能APP
- 前端圖片預覽前端
- node+express實現圖片上傳功能Express
- 自定義KSImageNamed-Xcode-master的圖片提示功能XCodeAST
- 上傳圖片