django - 反应原生上传图像文件到 django 后端
问题描述
嗨,我想将照片发布到 django 后端。我可以很容易地用邮递员发帖。但我不能用原生反应来做到这一点。这是我的发帖请求:
handleSubmit(photoUri){
let formData = new FormData();
formData.append('file',photoUri);
formData.append('name', 'a');
fetch('http://localhost:8000/test/', {
method: 'POST',
body:formData,
}).then(res => res.json())
.then((data) => {
console.log(data);
})
.catch(err => console.log(err));
}
在这篇文章中,django 序列化程序是这样的:
FileSerializer(data=<QueryDict: {'file': ['file:///data/user/0/host.exp.exponent/cache/ExperienceData/%2540anonymous%252Ftez2-1599e0c7-8863-4da6-b20f-5e6e94be9342/Camera/b2116349-cdfb-4309-8d6e-51c9a36be4fb
.jpg'], 'name': ['a']}>):
但是邮递员是这样的:
FileSerializer(data=<QueryDict: {'name': ['a'], 'file': [<InMemoryUploadedFile: a.jpg (image/jpeg)>]}>):
我认为问题出在 InMemoryUploadedFile 上,我无法通过本机反应以这种形式上传文件。我该怎么做 ?
解决方案
我明白回答这个问题太晚了。
但是你可以试试这个:
handleSubmit(photoUri){
let formData = new FormData();
const photo_data = { // Edit Here
uri : image_path_here // Edit Here,
name : image_name // Edit Here, Image Name with Extension very important
type : 'image/jpg' // Edit Here
}
formData.append('file', photo_data ); // Edit Here
formData.append('name', 'a');
fetch('http://localhost:8000/test/', {
method: 'POST',
body:formData,
}).then(res => res.json())
.then((data) => {
console.log(data);
})
.catch(err => console.log(err));
}
推荐阅读
- angular - 路径未按预期在 tsconfig.json 中工作
- java - Android gradle 版本没有更新
- sql - 转换 json 字段的输入
- python-3.x - Python3 子进程和 if elif else 条件
- javascript - 弹出关闭图标点击事件自定义
- django - 如何使用一个应用程序中的 Django 模型连接到第二个应用程序的数据库副本?
- app-store - 上传我的应用程序时出错:App Sore Connect 操作错误
- android - 不同设备的布局 - 约束布局和最小宽度限定符
- php - 如何通过 curl post 将文件上传到 api
- javascript - 可能未处理的拒绝:-尝试将数据从 angularJS 传递到 spring MVC