vue+element上傳圖片
阿新 • • 發佈:2019-01-07
做的是頭像上傳,因為一直出錯,記錄一下
<el-upload class="img-uploader" action="/resNavController/uploadPic" :show-file-list="false" :on-success="handleUploaderSuccess" multiple="false"> <img v-if="accountInfo.headImg" :src="accountInfo.headImg" class="img-uploader-img"> <i v-else class="el-icon-plus img-uploader-icon"></i></el-upload>
action:這個屬性是上傳的路徑地址
multiple="false" :這個屬性設定是否上傳單張和自動上傳圖片
show-file-list:是否上傳多張圖片(需知道的是,element裡上傳圖片使用的都是單張的上傳,對於多張的,也只是封裝成list傳遞到後臺中)
element裡面有幾個自定義的屬性:執行順序分別是
beforeAvatarUpload --->執行action提交 --->執行handleAvatarSuccess or uploadError
beforeAvatarUpload:上傳圖片前的判斷,一般為圖片格式,圖片大小限定
執行提交即走後臺程式碼
handleAvatarSuccess or uploadError:成功或者失敗的執行步驟
如果不走封裝的upload方法,想使用自己的方式,可使用http-request ,這種當時主要是用於跨域使用
<el-upload multiple="false" :http-request="uploadHttp" :on-preview="handlePicturePreview" :before-upload="handlePictureBefore" :on-remove="handlePictureRemove"> </el-upload>
js中:
uploadHttp: function(file) {
var fd = new FormData();
fd.append('file', file.file);
$.ajax({
url:"url路徑地址",
type: 'post',
contentType: false,
data: fd,
async: false,
processData: false, //使用ajax上傳圖片要設定的
success: function(res) {
if (res.success) {
console.log(res);
//上傳成功
} else {
//上傳失敗
return;
}
},
error: function(res) {
alert("請求錯誤");
}
});
},