我正在尝试使用带有ngCordova FileTransfer插件的AWS-S3上的预签名网址上传文件。
我已成功将文件上传到AWS-S3,但文件内容包含
------WebKitFormBoundarylCFgJXqqECF1rJ2m
Content-Disposition: form-data; name="file"; filename="75cae09191bd92a16c3ff05baeb88b9b.jpg"
Content-Type: image/jpeg
由于无法打开图像文件。 如何在我的文件中删除此标头。我有一个想法,如果我把二进制数据而不是表单数据,它将摆脱这个,因为我已经在POSTMAN中测试它,但无法在cordova文件传输中找到任何方法。
$cordovaFileTransfer.upload(s3SignedUrl, imagePathOnPhone, {
fileKey: "file",
fileName: localFileName,
httpMethod: "PUT",
mimeType: 'image/jpeg'
})
.then(function (result) {
console.log(result);
}, function (error) {
console.log(error);
}, function (progress) {
console.log(progress);
});
My Bucket在法兰克福地区和api v4。我在服务器上使用nodejs。
答案 0 :(得分:1)
尝试将Content-Type
属性添加到params
部分。
$cordovaFileTransfer.upload(s3SignedUrl, imagePathOnPhone, {
fileKey: "file",
fileName: localFileName,
httpMethod: "PUT",
mimeType: 'image/jpeg',
params: {
"Content-Type": "image/jpeg"
}
})
.then(function (result) {
console.log(result);
}, function (error) {
console.log(error);
}, function (progress) {
console.log(progress);
});
答案 1 :(得分:0)
尝试将"Content-Type": "image/jpeg"
添加到opts.headers
以停用多部分:
$cordovaFileTransfer.upload(s3SignedUrl, imagePathOnPhone, {
fileKey: "file",
fileName: localFileName,
httpMethod: "PUT",
mimeType: 'image/jpeg',
headers: {
"Content-Type": "image/jpeg"
}
})
.then(function (result) {
console.log(result);
}, function (error) {
console.log(error);
}, function (progress) {
console.log(progress);
});