Phonegap / Cordova文件传输上传图像为Base64字符串在iOS中无法正常工作

3
我正在处理从PhoneGap/Cordova应用上传图像作为base64图像流的问题,它在Android上完美地工作,但在iOS上不起作用,尽管当图像为png/jpg格式时,它可以工作,但当它是base64图像流时就无法工作。请问有谁能帮我解决这个问题。
以下是相关代码:
var options = new FileUploadOptions();
    options.fileKey = "file";   
    options.fileName = "test.jpg";
    options.mimeType = "image/jpeg";    
    options.chunkedMode = false;

     options.params = {
                "key": "test.jpg",
                "AWSAccessKeyId": awsKey,
                "acl": acl,
                "policy": policyBase64,
                "signature": signature,
                "Content-Type": ""
            };

    var ft = new FileTransfer();
    ft.upload(imageURI, s3URI + "",
            win, fail, options);
}
function win(r) {
    console.log("Code = " + r.responseCode);
    console.log("Response = " + r.response);
    console.log("Sent = " + r.bytesSent);
    alert(r.response);
}
function fail(error) {
    alert("An error has occurred: Code = " + error.code);
}

如果您正在使用base64,为什么不直接使用简单的AJAX POST呢? - jcesarmobile
你得到了什么错误? - Emre
@jcesarmobile 在我的应用程序中,有时是base64,有时是jpg/png,这取决于条件,因此我选择了FileTransfer,在Android端和iOS端都非常有效地工作。 - Mayuri Ruparel
2
@Emre:我遇到了错误,错误代码1,它说在iOS的base64中找不到文件。在Android中,对于base64和png/jpg,它完美地工作,在iOS中,对于jpg/png也可以正常工作,但是对于base64,它会出现“文件传输失败,错误代码1”,表示找不到文件。 - Mayuri Ruparel
@MayuriRuparel,你是怎么在Android上使用cordova-plugin-file-transfer上传base64图片的呢?我正在尝试这个方法,但是没有成功 :/ - Vinícius Mendes de Souza
3个回答

1

文件传输插件的1.5.0版本已经添加了该功能。该补丁于2015年12月14日应用。

您可以在此处查看提交记录。

至少在我的情况下,升级插件解决了问题。


0

我设置了chunkMode为true,但文件仍无法传输到服务器。看起来cordova文件传输插件不支持在iOS上上传base64图像。


0

使用PhoneGap进行上传时,如果使用base64,请将chunkMode设置为true。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接