Cordova文件传输:上传到aws s3后无法查看图像

时间:2016-05-31 20:57:50

标签: cordova amazon-s3

我正在使用cordova文件传输将图像上传到我的s3存储桶。

我管理上传文件没有任何错误,甚至可以在s3中看到文件。

但是当我尝试从s3下载图像时,我无法查看它(图像已损坏) 在做file image.png时我得到的结果是它是一个数据文件而不是一个图像..

这是上传代码:

let transfer = new Transfer();
options = {
  headers: {
    'Content-type': 'image/jpg',
  },
  httpMethod: 'PUT',
  chunkedMode: false
};
console.log("URL, ", url)
return transfer.upload(fileUrl, url, options, true)

我尝试使用或不使用encodeURI方法,有或没有chunkmode 似乎没什么用。任何想法?

这个代码使用离子本机库,但我也试过去FileTransfer对象,它仍然无法正常工作

我还使用了一个从我的网络服务器预先上传

的网址

更新: 这是我与原生FileTransfer对象

一起使用的代码
var options = new FileUploadOptions();
options.headers = { 'Content-type': 'image/jpg' }
options.httpMethod =  'PUT';
options.chunkedMode = false;
options.mimeType = 'image/jpg';

var ft = new FileTransfer();
ft.upload(fileURL, url, onSuccess, onFail, options, true);

2 个答案:

答案 0 :(得分:1)

问题在于Content-type标题

Content-Type而非Content-type解决了问题

答案 1 :(得分:-2)

我使用cordova文件传输将图像发布到我的服务器。这是我的代码:

function uploadPicture(url_to_upload_php_handler, fileURI){

    var uri = encodeURI(url_to_upload_php_handler);

    var options = new FileUploadOptions();

    options.fileKey="fileUpload";
    options.fileName=fileURI.substr(fileURI.lastIndexOf('/')+1);
    options.mimeType="image/jpeg";
    options.chunkedMode=false;

    var ft = new FileTransfer();

    ft.upload(fileURI, uri, uploadSuccess, uploadFail, options);
}