...
this.state = {
largerImgUrl: '',
largerLoading: false
};
...
isSize = (file, width, height) => {
return new Promise((resolve, reject) => {
let _URL = window.URL || window.webkitURL;
let img = new Image();
img.onload = () => {
let valid = img.width > width && img.height > height;
valid
? resolve()
: message.error('图片尺寸不符合要求,请修改后重新上传!'); reject();
};
img.src = _URL.createObjectURL(file);
});
}
largerBeforeUpload = file => {
return this.isSize(file, 700, 600);
}
largerHandleChange = ({ file }) => {
if (file.status === 'uploading') {
this.setState({ largerLoading: true });
return;
}
if (file.status === 'done') {
const { response } = file;
if (response.code === 0) {
message.success('上传成功!');
const { img_url } = response.data; // 根据自己实际请求回调设定变量
this.setState({ largerImgUrl: `//${img_url}` });
} else {
message.error(response.message);
}
}
if (file.status === 'error') {
message.error('上传失败!');
}
this.setState({ largerLoading: false });
}
...
<Upload
action="****" // 上传的地址
accept="image/gif,image/jpeg,image/jpg,image/png" // 接受上传的文件类型
listType="picture-card"
showUploadList={false}
beforeUpload={this.largerBeforeUpload}
onChange={this.largerHandleChange}
>
{(largerImgUrl) ? <img src={largerImgUrl} alt="" style={{ width: '100%' }} /> : <div >
<Icon type={largerLoading ? 'loading' : 'plus'} />
<div className="ant-upload-text">大图上传</div>
</div>}
</Upload>
Ant Design中upload组件上传图片前判断图片尺寸
最新推荐文章于 2023-12-08 14:28:14 发布