我正按照这个非常简单的方法将图片从fileURI上传到亚马逊
window.resolveLocalFileSystemURI(fileURI, function(fileEntry) {
fileEntry.file(function(fileObj) {
console.log("Size = " + fileObj.size);
var options = new FileUploadOptions();
options.chunkedMode = false;
options.httpMethod = 'PUT';
options.headers = {
'Content-Type': 'image/jpeg',
'Content-Length' : fileObj.size
};
var ft = new FileTransfer();
constructSignedUrl(picname, 'put').then(function (url) {
console.log(url)
ft.upload(fileURI, url,
function (res) {
deferred.resolve();
},
function (error) {
deferred.reject();
},
options);
});
});
});
constructSignedUrl(picname,'put')是一个构造预签名url的方法。它正在工作,我测试它与邮递员很好
服务器返回此错误
Message>A header you provided implies functionality that is not implemented</Message><Header>Transfer-Encoding</Header>
似乎文件上传传输正在添加标题,我无法摆脱它,我该如何解决这个问题?
更新:检查charles代理上的负载时,我看到标题
Transfer-Encoding chunked
仍然存在,如何覆盖它。我已经将chunked模式设置为false。
答案 0 :(得分:2)
好的我在cordova-file-transfer版本1.6.0上遇到了同样的问题
执行1.5.1版解决了我的问题。 我猜这个错误有与之相关的事情 https://github.com/apache/cordova-plugin-file-transfer/pull/141
反正:
cordova plugin add cordova-file-transfer@1.5.1
为我工作