Date:  08/24/2013 06:04:42 PM Msg ID:  004622
From:  Martin Martin Thread:  004617
Subject:  Re: UPLOAD CANVAS
It's ok...
 
I got it work :) i'm happy 
passing all parameter in XML 

Thanks for your time  
 
 
 
Sent by FoxWeb Support on 08/24/2013 04:18:10 PM:
By the way, in VFP 9 you can use STRCONV(data, 14) to decode the base64 encoded string. I tried it with your data and saw the doodle in the data you provided. Don't forget to strip the part before the comma (data:image/png;base64,) before processing with STRCONV!
FoxWeb Support Team
support@foxweb.com email
Sent by FoxWeb Support on 08/24/2013 04:10:34 PM:
I see the problem. You could try encoding the file data as multipart/form-data and mimic what browsers send with files uploaded via an HTML form. A simpler way (as long as you are uploading a single file at a time) would be to omit the field name ("imgData="+) in your uploaded content and use Request.Form() with no parameters to read it. Note that you will have to decode the base64 data before saving to a file.
FoxWeb Support Team
support@foxweb.com email
Sent by Martin Martin on 08/24/2013 07:06:42 AM:
 After "compare the contents of the request object in the two different situations
 
The string was changed by FoxWeb itself
ex:
in the string : the  "+" become a space " " ... etc ... 
 
so Foxweb have a malfunction here ...!?
 
 
 
 
 
 
 
 
 
Sent by FoxWeb Support on 08/23/2013 05:51:56 PM:
I don't have any experience sending canvas data (or any file upload data for that matter) via ajax. The FoxWeb scripts on the server side can read files uploaded with input fields of type "file", so I would think that there is something different with the data uploaded through your JavaScript code. You may want to try uploading a png file through a regular form and compare the contents of the request object in the two different situations.
FoxWeb Support Team
support@foxweb.com email
Sent by Martin Martin on 08/23/2013 11:07:59 AM:
 Hi,
 
I try to upload the content of my html5 canvas 
 
here what it's my javascript look like :
 
function saveImage() { 
    var canvasData = canvas.toDataURL();
    var ajax = new XMLHttpRequest();
    ajax.open("POST",'localhost/getFile.fwx',false);
    ajax.onreadystatechange = function() {
        console.log(ajax.responseText);
    }
    ajax.setRequestHeader('Content-Type', 'application/upload');
    ajax.send("imgData="+canvasData);
}
 
 
 
the canvas data look like :
"data:image/png;base64,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"
 
 
It's a .PNG encoded base64, I try to get it from my getfile.fwx foxweb script but can't get it!?
can you help me with getfile.fwx to recuperate this images?

do you have some code I can re-use?
 
thank you