【发布时间】:2020-10-02 01:41:10
【问题描述】:
我一直在尝试通过我的 IONIC 4 应用程序中的本地 http POST 请求发送图像。我正在获取选定的图像和 blob,但是当我尝试将其附加到我的 formData 时,我的 formData 始终为空。
这是我的 ts 代码
takePicture(sourceType: PictureSourceType) {
var options: CameraOptions = {
quality: 100,
sourceType: sourceType,
saveToPhotoAlbum: false,
correctOrientation: true
};
this.camera.getPicture(options).then(imagePath => {
if (this.platform.is('android') && sourceType === this.camera.PictureSourceType.PHOTOLIBRARY) {
this.file.resolveLocalFilesystemUrl(imagePath).then((entry: FileEntry) => {
entry.file(file => {
console.log(file);
this.readFile(file);
});
});
}
});
}
readFile(file: any) {
const reader = new FileReader();
reader.onloadend = () => {
const imgBlob = new Blob([reader.result], {
type: file.type
});
const formData = new FormData();
formData.append('file', imgBlob, file.name);
console.log(formData)
console.log(imgBlob)
this.uploadImageData(formData)
};
reader.readAsArrayBuffer(file);
}
async uploadImageData(formData) {
let feedbackData = {
attachment: formData,
feedback: 'test text'
}
this.http.post('http://abctest.rapidesk.in/api/feedback/', feedbackData, { 'Content-Type': 'multipart/form-data', 'Authorization': "Token" + " " + this.authToken })
.then(data => {
console.log(data);
}).catch(err => {
console.log(err)
})
}
- 第一个控制台显示我的图像位置和数据
- 第二个控制台是我的 formData
- 第三个控制台是我的 imgBlob
【问题讨论】:
-
你不能在
for (var pair of formData.entries()) { console.log(pair[0]+ ', ' + pair[1]); }下面尝试这样的控制台表单数据 -
@pc_coder 尝试使用 formData.entries 它给出“文件,[对象文件]”
-
你能写
console.log( pair[0],pair[1]) -
@pc_coder 它给了我文件详细信息,如名称和 blob 值
标签: javascript angular ionic-framework ionic4 angular8