<html>
  <head>
    <meta content="text/html; charset=windows-1252"
      http-equiv="Content-Type">
  </head>
  <body bgcolor="#FFFFFF" text="#000000">
    <font face="Georgia">sounds like the sliced and non-sliced versions
      are posting in somewhat different ways.<br>
      <br>
      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? <br>
      <br>
      What does the receiving code look like? Is it different for the
      sliced and non-sliced versions?<br>
      <br>
    </font>Can you say more about what "return an error" is? Is there a
    debugger stack you could include?<br>
    <br>
    <br>
    <div class="moz-cite-prefix">On 3/19/15 9:31 PM, Sebastien Audier
      wrote:<br>
    </div>
    <blockquote
cite="mid:CAACGQv2d0fvN9krs_di+ACSBfkJ7g=_PfjjWN-ZOS3qv3FUVRA@mail.gmail.com"
      type="cite">
      <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  -&gt; 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">&lt;<a moz-do-not-send="true"
              href="mailto:arning315@comcast.net" target="_blank">arning315@comcast.net</a>&gt;</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">&lt;<a
                            moz-do-not-send="true"
                            href="mailto:sebastien.audier@gmail.com"
                            target="_blank">sebastien.audier@gmail.com</a>&gt;</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 moz-do-not-send="true" 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>&lt;</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 moz-do-not-send="true"
                                        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 moz-do-not-send="true"
                              href="http://www.objectfusion.fr/"
                              target="_blank"><br>
                            </a></div>
                        </div>
                      </div>
                    </div>
                    <br>
                    <fieldset></fieldset>
                    <br>
                  </div>
                </div>
                <pre>_______________________________________________
seaside mailing list
<a moz-do-not-send="true" href="mailto:seaside@lists.squeakfoundation.org" target="_blank">seaside@lists.squeakfoundation.org</a>
<a moz-do-not-send="true" 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 moz-do-not-send="true"
              href="mailto:seaside@lists.squeakfoundation.org">seaside@lists.squeakfoundation.org</a><br>
            <a moz-do-not-send="true"
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 moz-do-not-send="true"
                href="http://www.objectfusion.fr/" target="_blank"><br>
              </a></div>
          </div>
        </div>
      </div>
      <br>
      <fieldset class="mimeAttachmentHeader"></fieldset>
      <br>
      <pre wrap="">_______________________________________________
seaside mailing list
<a class="moz-txt-link-abbreviated" href="mailto:seaside@lists.squeakfoundation.org">seaside@lists.squeakfoundation.org</a>
<a class="moz-txt-link-freetext" href="http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside">http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside</a>
</pre>
    </blockquote>
    <br>
  </body>
</html>