使用 ElementUI 上传图片前预览
使用 ElementUI 上传图片前预览
当使用 ElementUI 上传图片时,需要先预览该选中的图像文件
<div class="layui-inline">
<img v-if="poster.length>0" :src="poster" width="40" height="40" />
<el-upload
class="upload-demo"
ref="upload"
action="https://jsonplaceholder.typicode.com/posts/"
:on-change="onFileSelected"
:auto-upload="false"
:multiple="false"
:with-credentials="true"
:show-file-list="false"
accept="image/*"
>
<el-button slot="trigger" size="small" type="primary">选取文件</el-button>
<div slot="tip" class="el-upload__tip">只能上传jpg/png文件,且不超过500kb</div>
</el-upload>
</div>
// vue js 代码片段
data(){
return {
poster:""
}
}
methods:{
onFileSelected(file, filelist) {
const isIMAGE =
file.raw.type === "image/jpeg" || file.raw.type === "image/png";
const isLt1M = file.size / 1024 / 1024 < 1;
if (!isIMAGE) {
this.$message.error("只能上传jpg/png图片!");
return false;
}
if (!isLt1M) {
this.$message.error("上传文件大小不能超过 1MB!");
return false;
}
console.log("filelist.length=%s", filelist.length);
if (file) {
let reader = new FileReader();
reader.addEventListener(
"load",
() => {
this.poster = reader.result;
},
false
);
reader.readAsDataURL(file.raw);
}
}
}