Hope this would help. Assuming that you have files data in
gearsUploadedFiles array and URL in myUrl this should emulate classic form
upload:

var randomNumber = Math.floor(Math.random() * 1000000000000);
var boundary = "---------------------------" + randomNumber;
var dashDash = '--';
var crlf = '\r\n';
var dashDashBoundaryCrlf = dashDash + boundary + crlf;

var builder = google.gears.factory.create('beta.blobbuilder');

builder.append(dashDashBoundaryCrlf);
builder.append('Content-Disposition: form-data; name="fileFormat"');
builder.append(crlf);
builder.append(dashDash);
builder.append(boundary);

var item = 0;
while (gearsUploadedFiles[item]) {
    builder.append(crlf);
    var name = gearsUploadedFiles[item].columnId;
    builder.append('Content-Disposition: form-data; name="' + name + '"');
    if (gearsUploadedFiles[item].name) {
        builder.append('; filename="' + gearsUploadedFiles[item].name +
'"');
    }
    builder.append(crlf);
    builder.append('Content-Type: application/octet-stream');
    builder.append(crlf);
    builder.append(crlf);
    builder.append(gearsUploadedFiles[item].blob);
    builder.append(crlf);
    builder.append(dashDash);
    builder.append(boundary);
    item++
}

builder.append(crlf);
// YOU CAN ADD ADITIONAL CONTET HERE IF NEEDED
builder.append(crlf);
builder.append(dashDash);
builder.append(boundary);

builder.append(dashDash);
builder.append(crlf);

gearsHttpRequest = google.gears.factory.create('beta.httprequest');

gearsHttpRequest.onreadystatechange = function(){
    if (gearsHttpRequest.readyState == 1) {
        // ACTION ON UPLOAD START
    }
    if (gearsHttpRequest.readyState == 4) {
        if (gearsHttpRequest.status == 200) {
            //ACTION IF SUCCESS
        }
        else {
            // ACTION IF FAILURE
        }
    }
};

gearsHttpRequest.open('POST', myUrl);
gearsHttpRequest.setRequestHeader('content-type',
'multipart/form-data;boundary=' + boundary);

gearsHttpRequest.send(builder.getAsBlob());

---
Željko
http://skitanja.blogspot.com/

"you can't stay young forever...
but you can be immature for the rest of your life"
Unknown




2009/9/26 István Miklós Antal <[email protected]>

>
> Hello,
>
> I have searched over a day now, but I still can't find a good solution
> to post my blobs from my local storage to a remote server. I only
> found ones that partially worked. Can somebody post me a good example
> that would help me understand how to do this?
>
> I am using PHP server side, so the best solution would be something
> that could send data that would populate the $_FILES and the $_POST
> (send supplementary data with the file), but of course any other
> working solution would be good.
>
> Thank you in advance,
> István
>

Reply via email to