Jak zaimplementować pasek postępu przesyłania plików w Internecie?

Chciałbym wyświetlić coś bardziej znaczącego niż animowany gif, podczas gdy użytkownicy przesyłają plik do mojej aplikacji internetowej. Jakie mam możliwości?

Edit: używam. Net, ale nie mam nic przeciwko, jeśli ktoś pokaże mi wersję agnostyczną platformy.

Author: Jakub Šturc, 2008-09-08

7 answers

Oto kilka wersji tego, czego szukasz dla niektórych popularnych zestawów narzędzi JavaScript.

 5
Author: Matt Sheppard,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2008-09-08 12:41:40

Jeśli jesteś zainteresowany, Jak to wszystko ogólnie działa na stronie klienta, to jest to:

Wszystkie rozwiązania podłączają formularz za pomocą javascript i zmieniają cel formularzy na nowo utworzony, niewidoczny IFRAME. Następnie mogą swobodnie korzystać z AJAX, aby zażądać statusu pliku z serwera.

Sztuczka IFRAME jest potrzebna, ponieważ wszystkie skrypty uruchomione w oknie, które wykonuje przesyłanie, będą zawieszone do czasu zakończenia żądania, w którym plik zostanie w pełni przesłany.

 14
Author: pilif,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2008-09-08 14:28:13

ASP.NET przesyłanie plików za pomocą paska postępu W Czasie Rzeczywistym ]}

Http://mattberseth.com/blog/2008/07/aspnet_file_upload_with_realti_1.html

 3
Author: NakedBrunch,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2008-09-08 12:41:37

Próbowałem różnych technik i odniosłem największy sukces z SWFUpload .

Tworzysz obiekt SWFUpload i współdziałasz z nim za pomocą Javascript, ale do wyboru, przesyłania i monitorowania postępów w przesyłaniu plików używa się (ukrytego) pliku Flash. Można określić szeroki zakres procedur obsługi zdarzeń Javascript (uploadStarted, uploadProgress, uploadError itd.), że Flash wywoła się podczas postępu przesyłania, dzięki czemu jest bardzo elastyczny. Implementuje również kolejkę plików, więc działa dobrze dla jednego lub wielu pliki.

Linki:

 2
Author: georgebrock,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2008-09-09 11:26:23

Dobra pomoc dla. NET do robienia pasków postępu można znaleźć w artykułach MSDN Magazine Dino Esposito z lipca i sierpnia ubiegłego roku:

Kontekstowe informacje zwrotne z AJAX (lipiec '07)
Anulowanie zadań serwera z ASP.NET AJAX (sierpień '07)

 1
Author: Jason Bunting,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2008-09-08 13:55:45

Nie jest to jednak możliwe, ponieważ nie jest to możliwe w przypadku, gdy nie jest to możliwe.

 0
Author: Niyaz,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2008-09-08 12:26:08
 -3
Author: ,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-08-28 14:12:52