Я создал этот файл, используя компонент загрузки antd. Я хочу, чтобы при загрузке изображения оно сжимало размер и качество, максимальный размер составлял 2 Мб и отправляло на сервер. Я нашел плагин, но я не знаю, как его использовать. Можете ли вы помочь мне решить эту проблему?
Вот мой код:
Я создал компонент класса:
class Upload extends React.Component {
state = {
fileList: []
};
handleImageUpload = ({ onSuccess, onError, file }) => {
let formData = new FormData();
formData.set("documentId", "");
formData.append("image", file);
console.log(base_url);
axios .post(`${base_url}/uploadImage`, formData, {
headers: {
"Content-Type": "multipart/form-data"
}
})
.then(res => {
console.log(res);
onSuccess();
this.props.form.setFieldValue(this.props.field.name, res.data);
})
.catch(err => {
console.log(err);
onError();
});
};
handleChange = ({ fileList }) => this.setState({ fileList });
render() {
const { fileList } = this.state;
const uploadButton = (
<div>
<Icon type="plus" />
<div className="ant-upload-text" style={{ color: "black" }}>
Upload
</div>
</div>
);
const uploadedImage = (
<img
src={`${base_url}/viewImage`}
alt=""
/>
);
return (
<div className="clearfix">
<MyUpload
customRequest={this.handleImageUpload}
listType="picture-card"
fileList={fileList}
// onPreview={this.handlePreview}
onChange={this.handleChange}
>
{userDetails.imageId ? uploadedImage : uploadButton}
</MyUpload>
</div>
);
}
}