react antd Uplaod Dragger 上传图片,如何限制图片的宽高
时间: 2024-03-01 19:49:52 浏览: 150
要限制上传图片的宽高,可以在 `beforeUpload` 方法中获取图片的宽高信息,然后进行判断和处理。
以下是一个示例代码:
```javascript
import { Upload, message } from 'antd';
const Dragger = Upload.Dragger;
function beforeUpload(file) {
return new Promise((resolve, reject) => {
const reader = new FileReader();
reader.readAsDataURL(file);
reader.onload = (e) => {
const img = new Image();
img.src = e.target.result;
img.onload = () => {
const { width, height } = img;
// 在这里可以根据需要进行宽高的判断和处理
if (width > 1000) {
message.error('图片宽度不能超过1000px');
reject();
} else if (height > 1000) {
message.error('图片高度不能超过1000px');
reject();
} else {
resolve(file);
}
};
};
});
}
function MyUploader() {
return (
<Dragger beforeUpload={beforeUpload}>
<p className="ant-upload-drag-icon">上传图片</p>
<p className="ant-upload-text">点击或拖拽图片到此处上传</p>
</Dragger>
);
}
```
在上面的代码中,我们通过 `FileReader` 和 `Image` 对象获取了上传图片的宽高信息。然后在 `beforeUpload` 方法中,我们根据需要判断宽高是否符合要求,如果不符合,就返回一个 `Promise` 对象并调用 `reject` 方法,上传过程就会被中断。如果符合要求,就调用 `resolve` 方法返回上传的文件对象,上传过程会继续进行。同时,在不符合要求的情况下,我们还可以使用 `message` 组件给用户提示错误信息。
阅读全文