Reactjs PrimeReact使用Django上传文件,axios使用redux上传文件
我有这样的PrimeReactReactjs PrimeReact使用Django上传文件,axios使用redux上传文件,reactjs,django,django-rest-framework,react-redux,primereact,Reactjs,Django,Django Rest Framework,React Redux,Primereact,我有这样的PrimeReactFileUpload组件。文件上传组件位于Formik <FileUpload mode="basic" name="baptism_certificate" accept="image/*" maxFileSize={1000000}
FileUpload
组件。文件上传组件位于Formik
<FileUpload
mode="basic"
name="baptism_certificate"
accept="image/*"
maxFileSize={1000000}
customUpload
uploadHandler={onBasicUploadAuto}
chooseLabel="Browse"
/>
这是我上传ParishionerBaptismCertificate的方法
const onBasicUploadAuto = ({ files }) => {
const [file] = files;
console.log(file);
const fileReader = new FileReader();
fileReader.onload = (e) => {
dispatch(uploadParishionerBaptismCertificate(parishioner.id, e.target.result));
};
fileReader.readAsDataURL(file);
};
export const uploadParishionerBaptismCertificate = (id:string, baptism_certificate:any) => async (dispatch:(func:any)=>void) => {
dispatch(uploadParishionerBaptismCertificateStart());
try {
const formData = new FormData();
formData.append('baptism_certificate', baptism_certificate);
const path = `parishioners/${id}/upload-baptism-certificate/`;
const response = await axios.post(path, formData, {
headers: {
'Content-Type': 'multipart/form-data; boundary=----WebKitFormBoundary7MA4YWxkTrZu0gW'
}
});
console.log(response.data);
dispatch(uploadParishionerBaptismCertificateSuccess(response.data.baptism_certificate));
} catch (error) {
let customError = '';
Object.keys(error).forEach((key) => {
console.log(key, error[key]);
customError += `${key.toString()}: ${error[key].join(',').toString()}\n`;
});
dispatch(editParishionerFail(customError));
}
};
当我上传图片时,我得到了来自django的回应
baptism_certificate > ["The submitted data was not a file. Check the encoding type on the form."]
我做错了什么?
如何使用PrimeReact FileUpload组件上载文件