无法使用cordova-plugin-file-transfer上传base64图像

时间:2016-05-06 02:46:58

标签: cordova ionic-framework phonegap-plugins cordova-plugins

我尝试使用cordova-plugin-file-transfer将我的图像在base64上传到我的服务器,直到现在它还没有工作。我的代码是这样的:

photoBase64 = photoBase64.replace('data:image/png;base64,', '');

var url = "http://MYURL.com/path";

var options = new FileUploadOptions();
options.fileKey = "file";
options.fileName = "photoName.png";
options.mimeType = "image/png";

var ft = new FileTransfer();

ft.upload(photoBase64, 
          encodeURI(url), 

          function(result) {

                console.log("Code = " + result.responseCode);
                console.log("Response = " + result.response);
                console.log("Sent = " + result.bytesSent);
                resolve("OK");
          }, 

          function(error) {

                alert("An error has occurred: Code = " + error.code);
                console.error("ERROR", error);
                console.log("upload error source " + error.source);
                console.log("upload error target " + error.target);
                reject("ERROR");
          }, 

          options);

我使用此代码收到以下错误:

I'm getting the following error:

如何使用cordova-plugin-file-transfer上传图像base64?

提前致谢!

2 个答案:

答案 0 :(得分:5)

我已经晚了一年,但我只是通过反复试验找到答案:

您必须离开"数据:image / png; base64,"在字符串中。我假设没有这种格式,它不是有效的网址。

特别是在你的情况下,删除这一行:

photoBase64 = photoBase64.replace('data:image/png;base64,', '');

让我的上传工作真的很简单。

答案 1 :(得分:0)

文件传输插件不接受Base64字符串。你必须使用文件的位置(file :: // android / etc)。有关File plugin获取文件的更多信息(此插件随filetransfer插件自动安装)在这里:

https://github.com/apache/cordova-plugin-file

如果您真的想要使用base64字符串,则必须使用$ http.post并在接收端写一个api来重新创建文件