🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Thread View: pl.comp.lang.javascript
8 messages
8 total messages Started by aaaa Thu, 28 Apr 2011 21:33
Jak wgrywać plik pokazując ProgressBar
#50741
Author: aaaa
Date: Thu, 28 Apr 2011 21:33
28 lines
1956 bytes
Czołem
Jak wgrać plik i jednocześnie pokazać progress bar?
Ale żeby nie było za łatwo:

1) po stronie serwera jest PHP, więc odpadają wynalazki oparte na CGI,
PERLu, ASP...
2) powinno działać na hostingu współdzielonym, czyli odpadają rozszerzenia
do PHP (w tym APC), moduły Apache
3) ma działać w IE8, Firefoksie, Operze i Chrome/Safari
4) bez Flasha i Javy- żeby móc łatwo konfigurować wygląd i zachowanie
używając HTML/CSS/JS. No i nie każdy ma Flasha/Javę (np. różne iPady nie
mają)

Najlepsza możliwość, jaką znam to:
1) wysłać metodą POST 4kB danych do serwera i policzyć upload w KB/s
2) pobrać rozmiar pliku korzystając z File API:
$("#obrazek")[0].files[0].size;
3) policzyć ile upload tego obrazka powinien trwać

Problem: nie da się w IE8 pobrać w ten sposób rozmiaru pliku, zaś metoda:
document.getElementById('obrazek').value;
$('#ukrytyObraz').attr('src',a);
przestała działać (chyba jakaś aktualizacja Windowsa to zepsuła).


Jakieś opcje?
-- 
A
Re: Jak wgrywać plik pokazując ProgressBar
#50742
Author: Tomek Kańka
Date: Thu, 28 Apr 2011 22:25
15 lines
1231 bytes
aaaa <aaaa@aaaaaaaaaaaaaaaaaaa.com> napisał(a)
> Czołem
> Jak wgrać plik i jednocześnie pokazać progress bar?
> Ale żeby nie było za łatwo:
>

Tu masz asynchroniczny upload (nie czytałem zbyt dokładnie):
http://www.anyexample.com/programming/php/php_ajax_example__asynchronous_file_upload.xml

progress bar dorobisz pytając AJAXem ile już się przesłało.



-- 
Tomek
Re: Jak wgrywać plik pokazując ProgressBar
#50746
Author: Arson
Date: Fri, 29 Apr 2011 07:08
10 lines
1475 bytes
W dniu 28.04.2011 23:33, aaaa pisze:

> Jakieś opcje?

1. Google -> ajax file upload
2. Ja w sposob z pkt1. wybrałem ten:
http://aquantum-demo.appspot.com/file-upload

Pozdrawiam,
Arson
Re: Jak wgrywać plik pokazując ProgressBar
#50747
Author: aaaa
Date: Fri, 29 Apr 2011 15:17
9 lines
1330 bytes
> 1. Google -> ajax file upload
> 2. Ja w sposob z pkt1. wybrałem ten:
> http://aquantum-demo.appspot.com/file-upload

Widzialem to, ale to nie dziala w IE- tzn. dziala wszystko poza 
progressbarem.

-- 
A 
Re: Jak wgrywać plik pokazując ProgressBar
#50743
Author: aaaa
Date: Fri, 29 Apr 2011 15:23
15 lines
1860 bytes
> Tu masz asynchroniczny upload (nie czytałem zbyt dokładnie):
> http://www.anyexample.com/programming/php/php_ajax_example__asynchronous_file_upload.xml
>
> progress bar dorobisz pytając AJAXem ile już się przesłało.

Uzywanie iframe'a do wysylania pliku w tle w stary numer.
A progressbara nie zrobie odpytujac AJAXem, bo PHP przy uploadzie zapisuje 
plik w swoim katalogu tymczasowym, ktorego nie mozna zmienic dla kazdego 
usera z osobna, tzn. wszystkie uploady wszystkich userow trafiaja do tego 
samego katalogu i nie ma sposobu, by drugi skrypt stwierdzil gdzie jest 
aktualnie uploadowany plik dopoki ten plik sie nie wgra w calosci.
Czyli progressbara nie zrobie.

-- 
A 
Re: Jak wgrywać plik pokazując ProgressBar
#50748
Author: Peter May
Date: Fri, 29 Apr 2011 16:11
13 lines
1412 bytes
W dniu 29-04-2011 17:17, aaaa pisze:
>> 1. Google -> ajax file upload
>> 2. Ja w sposob z pkt1. wybrałem ten:
>> http://aquantum-demo.appspot.com/file-upload
>
> Widzialem to, ale to nie dziala w IE- tzn. dziala wszystko poza
> progressbarem.

Bo nie będzie działać nawet w IE9, które nie doczekało się jeszcze 
implementacji XHR upload.

-- 
Peter
Re: Jak wgrywać plik pokazując ProgressBar
#50744
Author: porneL
Date: Fri, 29 Apr 2011 16:50
22 lines
1819 bytes
On Fri, 29 Apr 2011 16:23:01 +0100, aaaa <aaaa@aaaaaaaaaaaaaaaaaaa.com>  
wrote:

>> Tu masz asynchroniczny upload (nie czytałem zbyt dokładnie):
>> http://www.anyexample.com/programming/php/php_ajax_example__asynchronous_file_upload.xml
>>
>> progress bar dorobisz pytając AJAXem ile już się przesłało.
>
> Uzywanie iframe'a do wysylania pliku w tle w stary numer.
> A progressbara nie zrobie odpytujac AJAXem, bo PHP przy uploadzie  
> zapisuje plik w swoim katalogu tymczasowym, ktorego nie mozna zmienic  
> dla kazdego usera z osobna, tzn. wszystkie uploady wszystkich userow  
> trafiaja do tego samego katalogu i nie ma sposobu, by drugi skrypt  
> stwierdzil gdzie jest aktualnie uploadowany plik dopoki ten plik sie nie  
> wgra w calosci.
> Czyli progressbara nie zrobie.

Zdaje mi się, że rozszerzenie APC ma opcję obserwowania wgrywanych plików  
(nie testowałem).

-- 
regards, porneL
Re: Jak wgrywać plik pokazując ProgressBar
#50745
Author: aaaa
Date: Fri, 29 Apr 2011 16:58
8 lines
1440 bytes
> Zdaje mi się, że rozszerzenie APC ma opcję obserwowania wgrywanych plików 
> (nie testowałem).

Jak pisalem w pierwszym poscie- nie moge instalowac rozszerzen a APC tam nie 
ma.

-- 
A 
Thread Navigation

This is a paginated view of messages in the thread with full content displayed inline.

Messages are displayed in chronological order, with the original post highlighted in green.

Use pagination controls to navigate through all messages in large threads.

Back to All Threads