Upload files to the server as Gmail?

How to implement and maybe there are ready solutions to implement the process of uploading files to the server as Gmail.

Recall features:

*) multiAttach, you can attach multiple files, and not to poke one

*) progressBar, the selected files are loaded sequentially + display of the upload process of each file

*) The file download can be interrupted or remove a single file from the already uploaded, or delete them from the queue file which has not yet started to boot.

*) maybe something else has not seen useful

October 10th 19 at 15:34
9 answers
October 10th 19 at 15:36
here is a list of the most popular stackoverflow.com/questions/4072889/uploadify-alternative-need-to-upload-large-1gb-files

I myself use the third(derived from the first), even works on IE6. The progress bar and the cancel can take at first. These two without flash, HTML4
October 10th 19 at 15:38
October 10th 19 at 15:40
Used version of PHP+APC www.ibm.com/developerworks/library/os-php-v525/index.html All beautiful, without any extra plugins and without flash.
October 10th 19 at 15:42
If you do not touch all sorts of flushes and server components, that can be done on the basis of the functionality offered by HTML5. The only problem is that it is introduced slowly and supported browsers sucks:

1. Chrome: from the 5th (?) version added FormData (XHR2 from). You can now send files (despite the fact that to read the binary contents of a file is impossible, at least in the stable releases) XHR'ω (where, recall, need multipart). In earlier versions, you had to send the raw binary contents of the file, without any headers. Accordingly, the web servers didn't understand that they got the file, and generally does not processed the sent information (it had to be read from the input stream). Have the support of the XMLHttpRequestUpload, which allows you to monitor the download progress.

2. Firefox: starting with 3.5 (?) you can read the contents of files, there is a special method to send binary data. So the absence of bad FormData does not affect — multipart request, you can generate yourself. XMLHttpRequestUpload are also supported.

3. Safari: a point can not say, but File, FormData, there XMLHttpRequestUpload implemented (5.0 — 7533.16).

4. Opera, IE: apparently not even heard of such. They will have to do the old-fashioned way — flash / ServeRAID / etc.

From the category to read:
javascript.ru/blog/Brmaley.ee/FileAPI — material is somewhat outdated*
www.thecssninja.com/javascript/gmail-upload — material is somewhat outdated*
code.google.com/p/html5uploader/ — library of D&D, but, in my opinion, it is also somewhat outdated* :)
* — this refers to support such a thing as FormData.
October 10th 19 at 15:44
There is an interesting plugin valums.com/ajax-upload/
October 10th 19 at 15:46
ProgressBar implemented in JQuery lot of ready-made components
there are solutions for the flash

if you are using nginx, and this is a big part of the Internet, you need ISP module:
ngx_upload_module, mgx_upload_progress_module

if you use Apache, that is, cgi scripts progress-download.
read Doc's all too simple - mathias0 commented on October 10th 19 at 15:49
October 10th 19 at 15:48
In my opinion the most interesting and useful feature of gmail — drag'n'drop support :)
www.kigorw.com/articles/dd-file - mathias0 commented on October 10th 19 at 15:51
That's what I said, most of the articles written on this subject in April-may this year, and at that time FormData was not implemented in chrome, I have to send raw binary data and read them from the input stream (request.raw_post_data). Whether it is a full-fledged multipart, which is identical to the usual sending of files by the browser. - gina_Harv commented on October 10th 19 at 15:54
October 10th 19 at 15:50
thanks for all the advice, suggestions and recommendations, I will now digest the information and learn
October 10th 19 at 15:52

Supports html5, flash and silverlight the download, successfully rolled back in the presence of benerito.
In my opinion, has a set of events for the implementation of any desires.
The entire customization of the upload queue, you do.
Supports resuming in case of disconnection (only in html5 and silverlight).
Supports cross-domain loading of files.
Works only with nginx + nginx_upload_module, although if you want you can implement the Protocol, resumable www.grid.net.ru/nginx/resumable_uploads.ru.html in other server components.

Find more questions by tags GmailJavaScript