element 圖片上傳
阿新 • • 發佈:2020-10-26
<
el-upload
class
=
"avatar-uploader"
action
=
"123"
//這個路徑不重要,可以隨便寫
:show-file-list
=
"false"
:on-success
=
"handleAvatarSuccess"
:on-change
=
"onchange"
:before-upload
=
"beforeAvatarUpload"
>
<
img
v-if
=
"imageUrl"
:src
=
"imageUrl"
class
=
"avatar"
>
<
i
v-else
class
=
"el-icon-plus avatar-uploader-icon"
></
i
>
</
el-upload
>
<script>
export
default
{
data() {
return
{
imageUrl:
''
,
};
},
methods: {
handleAvatarSuccess(res, file) {
this
.imageUrl = URL.createObjectURL(file.raw);
},
beforeAvatarUpload(file) {
const isJPG = file.type ===
'image/jpeg'
;
const isLt2M = file.size / 1024 / 1024 < 2;
if
(!isJPG) {
this
.$message.error(
'上傳頭像圖片只能是 JPG 格式!'
);
}
if
(!isLt2M) {
this
.$message.error(
'上傳頭像圖片大小不能超過 2MB!'
);
}
return
isJPG && isLt2M;
},
//當上傳圖片後,呼叫onchange方法,獲取圖片本地路徑
onchange(file,fileList){
var
_this =
this
;
var
event = event || window.event;
var
file = event.target.files[0];
var
reader =
new
FileReader();
//轉base64
reader.onload =
function
(e) {
_this.imageUrl = e.target.result
//將圖片路徑賦值給src
}
reader.readAsDataURL(file);
}
}
}
</script>