Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Can't upload base64 image using cordova-plugin-file-transfer

I'm trying to upload my image in base64 to my server using cordova-plugin-file-transfer and until now it's not working. My code is like this:

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

And I'm getting the following error with this code:

I'm getting the following error:

How can I upload image base64 using cordova-plugin-file-transfer?

Thanks in advance!

like image 303
Vinícius Mendes de Souza Avatar asked Mar 12 '23 09:03

Vinícius Mendes de Souza


1 Answers

I'm a year late to the party but I just came upon the answer through trial and error:

You must leave "data:image/png;base64," in the string. I assume without that format it's not a valid url.

specifically in your case, delete this line:

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

It was really that simple for me to get my upload working.

like image 156
CodeCabin Avatar answered Apr 28 '23 10:04

CodeCabin