在开发中,上传图片用到了element中的el-uoload组件
<el-upload
:class="{ disabled: uploadDisabled }"
action=""
:limit="1"
list-type="picture-card"
accept=""
:http-request="uploadHttpRequestPicture"
:before-upload="beforeAvatarUpload"
:on-exceed="handleExceed"
:on-change="handleLimit"
:on-remove="handleRemove"
:on-success="handleSuccess"
>
<i class="el-icon-plus"></i>
<span class="upImageBsdicAdd">上传照片</span>
</el-upload>
通常限制上传的类型,我们只需在accept属性设置允许图片上传的类型即可,
当点击上传,自动唤起系统自带的资源管理器,正常情况会限制除了设置的类型,别的类型禁用,
但是有一种特殊情况
当你手动更换了文件的类型,变为所有文件,这个时候当前所有文件都会放开,因为这个时候相当于用户手动去操作了自己电脑。我们开发 无法控制。所以想解决这么问题,就只能通过element中组件属性http-request,来自定义规则
在这里插入代码片 //上传之前
beforeAvatarUpload(file: any) {
const testmsg = file.name.substring(file.name.lastIndexOf(".") + 1);
const extension =
testmsg === "jpg" || testmsg === "jpeg" || testmsg === "png";
console.log(extension);
if (!extension) {
this.$message({
message: "格式不支持!",
type: "error",
});
}
return extension
}