我使用这个,在反应,以Base64编码的图像文件:
fileToBase64 = (filename, filepath) => {
return new Promise(resolve => {
var file = new File([filename], filepath);
var reader = new FileReader();
reader.onload = function(event) {
resolve(event.target.result);
};
reader.readAsDataURL(file);
});
};
它通过调用此方法:
handleChangeFile = event => {
const { name, files } = event.target;
if (files.length) {
const file = files[0];
let fields = this.state.fields;
this.fileToBase64(file).then(result => {
fields[name].value = result;
});
fields[name].isFilled = true;
this.setState({
fields: fields
});
}
};
而整个字段变量被迄今为止发布到Django的服务器,没有问题。
蟒Django的结尾:
str_encoded = request.data["file"]
str_decoded = base64.b64decode(str_encoded)
第二行返回一个错误, binascii.Error: Invalid base64-encoded string: length cannot be 1 more than a multiple of 4
。 我GOOGLE和阅读这可能是一个填充问题,但我不知道如何解决它。