2016-05-31 61 views
1

我正在使用cordova文件传输将图像上传到我的s3存储桶。Cordova文件传输:上传到aws后无法查看图像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对象,它仍然没有工作

林还使用即时通讯上载

更新前我的Web服务器得到一个被烫伤的网址: 这里是我与本地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); 
+0

你能张贴你尝试了使用文件传输对象的代码? – Gandhi

+0

@genadhi在问题 – tubu13

+0

我想它应该是选项对象中的MIME类型设置。检查出这个链接的更多信息 - https://github.com/apache/cordova-plugin-file-transfer – Gandhi

回答

1

的问题是与Content-type

Content-Type,而不是Content-type解决了这个问题

-2

我张贴图片到我与科尔多瓦文件传输服务器使用的代码。这里是我的代码:

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); 
}