<div dir="ltr">Hi Bob, <span style="color:rgb(55,62,77);font-family:Helvetica,Arial,'lucida grande',tahoma,verdana,arial,sans-serif;font-size:12px;line-height:15.3599996566772px;white-space:pre-wrap;background-color:rgb(246,247,248)">Thanks for your answer.</span><br><br>Right, but before this problem, I failed to recover the file content through the request. <br><br><div>If I don't slice the file, I can recover a WAFile instance by:</div><div><br>| file |<br>file := self requestContext request postFields values first...<br>And I stream on disk after that.<br><br>If I slice the file on web client, I can't recover the WAFile, because: <br><br>self requestContext -> return an error. </div><div><br></div><div>What's wrong in my process ?<br><br></div><div><br></div><div>Thanks again,</div></div><div class="gmail_extra"><br><div class="gmail_quote">2015-03-19 15:02 GMT-10:00 Bob Arning <span dir="ltr"><<a href="mailto:arning315@comcast.net" target="_blank">arning315@comcast.net</a>></span>:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div bgcolor="#FFFFFF" text="#000000">
<font face="Georgia">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.</font><div><div class="h5"><br>
<br>
<div>On 3/19/15 8:42 PM, Sebastien Audier
wrote:<br>
</div>
</div></div><blockquote type="cite"><div><div class="h5">
<div dir="ltr">Okay, I dropped the idea of cut the file.<br>
<br>
One solution (not tested yet): <span style="font-size:12.8000001907349px">ZnConstants
maximumEntitySize: 104857600 (100 * 1024 * 1024) in order to
increase the size of incoming entities to 100 M for example.</span><span style="font-size:12.8000001907349px"><br>
<br>
But, if we find one solution for the other case, we could
upload file faster.</span>
<div><span style="font-size:12.8000001907349px"><br>
</span></div>
<div><span style="font-size:12.8000001907349px">Happy smalltalk
;)</span></div>
</div>
<div class="gmail_extra"><br>
<div class="gmail_quote">2015-03-12 15:21 GMT-10:00 Sebastien
Audier <span dir="ltr"><<a href="mailto:sebastien.audier@gmail.com" target="_blank">sebastien.audier@gmail.com</a>></span>:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div dir="ltr">
<div class="gmail_quote"><br>
<div dir="ltr">Hi all,<br>
<br>
I work on pharo 2.0 and seaside-REST with ZincServer.<br>
<br>
I need to rebuild a file which is uploaded by POST
requests through Seaside-REST but I don't really use
WASession. <span><br>
<br>
On javascript layer, I cut the file with this
function:<br>
<br>
<pre style="font-family:'Source Code Pro',monospace;font-size:15px;white-space:pre-wrap;word-wrap:break-word;color:white;padding:1em;line-height:1.3;border-radius:2px;margin-bottom:2em;background-color:rgb(68,68,68)"><span>document</span><span>.</span><span>querySelector</span><span>(</span><span style="color:rgb(101,176,66)">'input[type="file"]'</span><span>).</span><span>addEventListener</span><span>(</span><span style="color:rgb(101,176,66)">'change'</span><span>,</span><span> </span><span style="color:rgb(226,137,100)">function</span><span>(</span><span>e</span><span>)</span><span> </span><span>{
</span><span> var name = <a href="http://this.files.name" target="_blank">this.files.name</a>;
</span><span style="color:rgb(226,137,100)">var</span><span> blob </span><span>=</span><span> </span><span style="color:rgb(226,137,100)">this</span><span>.</span><span>files</span><span>[</span><span style="color:rgb(51,135,204)">0</span><span>];</span><span>
</span><span style="color:rgb(226,137,100)">const</span><span> BYTES_PER_CHUNK </span><span>=</span><span> </span><span style="color:rgb(51,135,204)">1024</span><span> </span><span>*</span><span> </span><span style="color:rgb(51,135,204)">1024</span><span>;</span><span> </span><span style="color:rgb(174,174,174);font-style:italic">// 1MB chunk sizes.</span><span>
</span><span style="color:rgb(226,137,100)">const</span><span> SIZE </span><span>=</span><span> blob</span><span>.</span><span>size</span><span>;</span><span>
</span><span style="color:rgb(226,137,100)">var</span><span> start </span><span>=</span><span> </span><span style="color:rgb(51,135,204)">0</span><span>;</span><span>
</span><span style="color:rgb(226,137,100)">var</span><span> </span><span style="color:rgb(226,137,100)">end</span><span> </span><span>=</span><span> BYTES_PER_CHUNK</span><span>;</span><span>
</span><span style="color:rgb(226,137,100)">while</span><span>(</span><span>start </span><span><</span><span> SIZE</span><span>)</span><span> </span><span>{</span><span>
upload</span><span>(name, </span><span>blob</span><span>.</span><span>slice</span><span>(</span><span>start</span><span>,</span><span> </span><span style="color:rgb(226,137,100)">end</span><span>));</span><span>
start </span><span>=</span><span> </span><span style="color:rgb(226,137,100)">end</span><span>;</span><span>
</span><span style="color:rgb(226,137,100)">end</span><span> </span><span>=</span><span> start </span><span>+</span><span> BYTES_PER_CHUNK</span><span>;</span><span>
</span><span>}</span><span>
</span><span>},</span><span> </span><span style="color:rgb(226,137,100)">false</span><span>);</span></pre>
</span>And I send datas with this function:
<div><br>
</div>
<div><span>
<pre style="font-family:'Source Code Pro',monospace;font-size:15px;white-space:pre-wrap;word-wrap:break-word;color:white;padding:1em;line-height:1.3;border-radius:2px;margin-bottom:2em;background-color:rgb(68,68,68)"><span style="color:rgb(226,137,100)">function</span><span> upload</span><span>(aFileName</span><span>,</span><span> files</span><span>)</span><span> </span><span>{</span><span>
</span><span style="color:rgb(226,137,100)">var</span><span> formData </span><span>=</span><span> </span><span style="color:rgb(226,137,100)">new</span><span> </span><b><span style="color:rgb(137,189,255)">FormData</span></b><span>();</span><span>
</span><span style="color:rgb(226,137,100)">for</span><span> </span><span>(</span><span style="color:rgb(226,137,100)">var</span><span> i </span><span>=</span><span> </span><span style="color:rgb(51,135,204)">0</span><span>,</span><span> file</span><span>;</span><span> file </span><span>=</span><span> files</span><span>[</span><span>i</span><span>];</span><span> </span><span>++</span><span>i</span><span>)</span><span> </span><span>{</span><span>
</span><b><span>formData</span><span>.</span><span>append</span><span>(aF</span><span>ileN</span><span>ame</span><span>,</span><span> file</span><span>);</span></b><span>
</span><span>}</span><span>
</span><span style="color:rgb(226,137,100)">var</span><span> xhr </span><span>=</span><span> </span><span style="color:rgb(226,137,100)">new</span><span> </span><span style="color:rgb(137,189,255)">XMLHttpRequest</span><span>();</span><span>
xhr</span><span>.</span><span>open</span><span>(</span><span style="color:rgb(101,176,66)">'POST'</span><span>,</span><span> '/myPath'</span><span>,</span><span> </span><span style="color:rgb(226,137,100)">true</span><span>);</span><span>
xhr</span><span>.</span><span>onload </span><span>=</span><span> </span><span style="color:rgb(226,137,100)">function</span><span>(</span><span>e</span><span>)</span><span> </span><span>{</span><span> </span><span>...</span><span> </span><span>};</span><span>
xhr</span><span>.</span><span>send</span><span>(</span><b>formData</b><span>);</span><span> </span><span style="color:rgb(174,174,174);font-style:italic">// multipart/form-data</span><span>
</span><span>}</span></pre>
<div><span><br>
</span></div>
</span>
<div><span>I have a POST method on my handler, but I
receive multiple requests.<br>
On this way, I don't have access to the
requestContext in order to get the WAFile in
request. </span></div>
<div><span>If I don't cut the file, it works and I
can store on disk. But not in the other case.</span></div>
<div><span><br>
Of course, my goal is to store the file on disk </span>correctly.<br>
<br>
So,<br>
How to get file content of each request ?<br>
How to rebuild and store the file correctly if
the requests aren't ordored ?</div>
<div><span><br>
</span></div>
<div>Any help ?<br>
<br>
Thank's a lot.</div>
<span><font color="#888888"><span><font color="#888888">
<div><br>
</div>
</font></span></font></span></div>
</div>
</div>
<span><font color="#888888">
<div><br>
</div>
-- <br>
<div>
<div dir="ltr">Sébastien AUDIER<br>
<div><br>
<a href="http://www.objectfusion.fr/" target="_blank"><br>
</a></div>
</div>
</div>
</font></span></div>
</blockquote>
</div>
<br>
<br clear="all">
<div><br>
</div>
-- <br>
<div>
<div dir="ltr">Sébastien AUDIER<br>
<div><br>
<a href="http://www.objectfusion.fr/" target="_blank"><br>
</a></div>
</div>
</div>
</div>
<br>
<fieldset></fieldset>
<br>
</div></div><pre>_______________________________________________
seaside mailing list
<a href="mailto:seaside@lists.squeakfoundation.org" target="_blank">seaside@lists.squeakfoundation.org</a>
<a href="http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside" target="_blank">http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside</a>
</pre>
</blockquote>
<br>
</div>
<br>_______________________________________________<br>
seaside mailing list<br>
<a href="mailto:seaside@lists.squeakfoundation.org">seaside@lists.squeakfoundation.org</a><br>
<a href="http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside" target="_blank">http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside</a><br>
<br></blockquote></div><br><br clear="all"><div><br></div>-- <br><div class="gmail_signature"><div dir="ltr">Sébastien AUDIER<br><div><br>
<a href="http://www.objectfusion.fr/" target="_blank"><br></a></div></div></div>
</div>