[Seaside] Re: Rest - Ajax request - build file
Bob Arning
arning315 at comcast.net
Fri Mar 20 01:46:18 UTC 2015
sounds like the sliced and non-sliced versions are posting in somewhat
different ways.
does the sample code below work ok if the data is less than
BYTES_PER_CHUNK? IOW, is the code ok for a single chunk POST, but
failing for multiple chunks?
What does the receiving code look like? Is it different for the sliced
and non-sliced versions?
Can you say more about what "return an error" is? Is there a debugger
stack you could include?
On 3/19/15 9:31 PM, Sebastien Audier wrote:
> Hi Bob, Thanks for your answer.
>
> Right, but before this problem, I failed to recover the file content
> through the request.
>
> If I don't slice the file, I can recover a WAFile instance by:
>
> | file |
> file := self requestContext request postFields values first...
> And I stream on disk after that.
>
> If I slice the file on web client, I can't recover the WAFile, because:
>
> self requestContext -> return an error.
>
> What's wrong in my process ?
>
>
> Thanks again,
>
> 2015-03-19 15:02 GMT-10:00 Bob Arning <arning315 at comcast.net
> <mailto:arning315 at comcast.net>>:
>
> Not really sure I understand the question, but it sounds like you
> would need to include some sort of position information in each
> POST. That way the receiving end knows where in the file to put
> the data.
>
>
> On 3/19/15 8:42 PM, Sebastien Audier wrote:
>> Okay, I dropped the idea of cut the file.
>>
>> One solution (not tested yet): ZnConstants maximumEntitySize:
>> 104857600 (100 * 1024 * 1024) in order to increase the size of
>> incoming entities to 100 M for example.
>>
>> But, if we find one solution for the other case, we could upload
>> file faster.
>>
>> Happy smalltalk ;)
>>
>> 2015-03-12 15:21 GMT-10:00 Sebastien Audier
>> <sebastien.audier at gmail.com <mailto:sebastien.audier at gmail.com>>:
>>
>>
>> Hi all,
>>
>> I work on pharo 2.0 and seaside-REST with ZincServer.
>>
>> I need to rebuild a file which is uploaded by POST requests
>> through Seaside-REST but I don't really use WASession.
>>
>> On javascript layer, I cut the file with this function:
>>
>> document.querySelector('input[type="file"]').addEventListener('change', function(e) {
>> var name =this.files.name <http://this.files.name>;
>> var blob= this.files[0];
>>
>> const BYTES_PER_CHUNK= 1024 * 1024; // 1MB chunk sizes.
>> const SIZE= blob.size;
>>
>> var start= 0;
>> var end = BYTES_PER_CHUNK;
>>
>> while(start< SIZE) {
>> upload(name,blob.slice(start, end));
>>
>> start= end;
>> end = start+ BYTES_PER_CHUNK;
>> }
>> }, false);
>>
>> And I send datas with this function:
>>
>> function upload(aFileName, files) {
>> var formData= new *FormData*();
>>
>> for (var i= 0, file; file= files[i]; ++i) {
>> *formData.append(aFileName, file);*
>> }
>>
>> var xhr= new XMLHttpRequest();
>> xhr.open('POST', '/myPath', true);
>> xhr.onload= function(e) { ... };
>>
>> xhr.send(*formData*); // multipart/form-data
>> }
>>
>>
>> I have a POST method on my handler, but I receive multiple
>> requests.
>> On this way, I don't have access to the requestContext in
>> order to get the WAFile in request.
>> If I don't cut the file, it works and I can store on disk.
>> But not in the other case.
>>
>> Of course, my goal is to store the file on disk correctly.
>>
>> So,
>> How to get file content of each request ?
>> How to rebuild and store the file correctly if the requests
>> aren't ordored ?
>>
>> Any help ?
>>
>> Thank's a lot.
>>
>>
>> --
>> Sébastien AUDIER
>>
>>
>> <http://www.objectfusion.fr/>
>>
>>
>>
>>
>> --
>> Sébastien AUDIER
>>
>>
>> <http://www.objectfusion.fr/>
>>
>>
>> _______________________________________________
>> seaside mailing list
>> seaside at lists.squeakfoundation.org <mailto:seaside at lists.squeakfoundation.org>
>> http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside
>
>
> _______________________________________________
> seaside mailing list
> seaside at lists.squeakfoundation.org
> <mailto:seaside at lists.squeakfoundation.org>
> http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside
>
>
>
>
> --
> Sébastien AUDIER
>
>
> <http://www.objectfusion.fr/>
>
>
> _______________________________________________
> seaside mailing list
> seaside at lists.squeakfoundation.org
> http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.squeakfoundation.org/pipermail/seaside/attachments/20150319/da19b0e0/attachment.htm
More information about the seaside
mailing list