On Wed, Aug 8, 2012 at 2:42 PM, 春燕 李 <lcy8...@gmail.com> wrote:
> Thanks !
>
> In my application, I want to upload  image files(such as *.iso) which
> are always large, it will take long time before the uploading
> completed. During this time, I cannot  send out other request on
> current page, because a new request will refresh the current page and
> make the uploading failed. My aim is that after I click the Upload
> button, the file uploading is processed in backend, I can send out
> other request  simutanously. Firstly , I tried to get the stream, and
> write  new handler to replace the exsiting processing. But after I
> read the source code , I find that the input stream got by django is
> activity limited,  it only can be read once, once reading is started,
> the current page shouldn't be refresh, or else the stream reading will
> be failed.
>
> Is it realizable to  uploading backend and simutanously send other
> request on current page, and the uploading won't interrupt because of
> leaving this page?

Not really. This isn't something that's Django specific -- it's a
general problem with web browsers. Web browsers make requests.
Background requests are still requests, and they need to happen in the
context of a page that is in the foreground. If you change the
foreground page, you're going to stop any background activity that is
underway.

That said, there might be something you can do by breaking the
background task into a large number of smaller requests using the HTTP
Range header, and then recombining the file on the server side from
all the individual chunks. That won't stop the background request from
being killed, but it will give you an opportunity to resume the upload
on a new page.

However, this isn't something where I can point you at a simple page
of documentation and say "just call these three lines of Python". What
you're proposing isn't a simple task. You're going to need to become
very familiar with the HTTP specification, and work out how to put the
pieces together yourself.

Yours,
Russ Magee %-)

-- 
You received this message because you are subscribed to the Google Groups 
"Django users" group.
To post to this group, send email to django-users@googlegroups.com.
To unsubscribe from this group, send email to 
django-users+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/django-users?hl=en.

Reply via email to