![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 90 Pomógł: 4 Dołączył: 5.02.2006 Ostrzeżenie: (0%) ![]() ![]() |
Witam, mam problem z napisaniem dynamicznego uploadera plików.
Używam klasy AdvancedAJAX 1.1 Plik z formularzem(example.php): Kod <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd" xml:lang="pl"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title>Dynamiczny upload By Astarot</title> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <script type="text/javascript" src="advajax.js"></script> <script type="text/javascript" src="funkcje.js"></script> </head> <body> <form method="post" enctype="multipart/form-data"> <input type="hidden" name="MAX_FILE_SIZE" value="30000" /> <input type="file" name="pliczek" size="30" /> <button onclick="upload()">Zapisz</button> </form> </body> </html> Plik z funkcją odpowiedzialna za przeslanie zmiennych(funkcje.js): Kod function upload() { advAJAX.post({ url: "upload.php", onLoading : function(obj) { alert('laduje'); }, onComplete : function(obj) { alert('zaladowalem'); }, onSuccess : function(obj) { alert('mam dane'); } }); } oraz pliczek upload.php: Kod <?php move_uploaded_file($_FILES['pliczek']['tmp_name'],"pliki/".$_FILES['pliczek']['name']); ?> Taki błąd generuje konsola JS w mozilli firefox ![]() obrazek TUTAJ Licze na waszą pomoc ![]() pozdr. Astarot Ten post edytował Astarot 1.04.2006, 11:48:51 -------------------- torrenty
|
|
|
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 352 Pomógł: 0 Dołączył: 22.01.2006 Ostrzeżenie: (0%) ![]() ![]() |
Nie uploadujesz pliku ajaxem.. gdyby to było możliwe byłaby to poważna luka w bezpieczenstwie.. a nawet nie luka.. a wieeelka dziura ;-)
Jesli piszesz skrypt wyłącznie na własne potrzeby, możesz poprzez edycje pliku konfiguracyjnego firefoxa sobie to umożliwić. |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 90 Pomógł: 4 Dołączył: 5.02.2006 Ostrzeżenie: (0%) ![]() ![]() |
Hmm... dlaczego powstala by luka ? przeciez w pliku upload.php mozna zrobic
filtrowanie rozszezen tylko na jpg.. i wtedy inne pliki nie bylyby uploadowane. Szukajac przykladowych uploaderow w ajaxie na google, udalo mi sie kilka znaleść. Niestety wszystkie były płatne ok 30$. Dlatego zakładam że upload w ajaxie jest możliwy. Pozdr. Astarot Ten post edytował Astarot 1.04.2006, 12:31:29 -------------------- torrenty
|
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 521 Pomógł: 0 Dołączył: 3.11.2003 Skąd: 3city Ostrzeżenie: (0%) ![]() ![]() |
Kiepsko szukałeś. Np. http://www.captain.at/ajax-file-upload.php.
A twój przykład niestety w ogóle nie uploaduje plików. Tak to możesz co najwyżej wysłaś nazwę pliku. Najpierw trzeba plik odczytać z dysku. Normalnie przeglądarka robi to automagicznie dla input type="file", ale ty nie wysyłasz formularza, więc musisz zrobić to sam. A grzebanie javascriptem po dysku nie należy do bezpiecznych operacji. |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 124 Pomógł: 0 Dołączył: 26.10.2004 Skąd: Rybnik Ostrzeżenie: (0%) ![]() ![]() |
@hawk - to rozwiązania działa tylko pod FF... miałem podobny problem i poszedłem w stronę ukrytej ramki, do której jest wysyłany formularz...
-------------------- Hardware: Celeron 3.06, 512 MB DDR
Software: Apache 2.0, MySQL 4.0, php 4.3.1, Zend 5.1, Firefox |
|
|
![]()
Post
#6
|
|
![]() Grupa: Zarejestrowani Postów: 352 Pomógł: 0 Dołączył: 22.01.2006 Ostrzeżenie: (0%) ![]() ![]() |
Cytat(Astarot @ 2006-04-01 11:30:49) Hmm... dlaczego powstala by luka ? przeciez w pliku upload.php mozna zrobic filtrowanie rozszezen tylko na jpg.. i wtedy inne pliki nie bylyby uploadowane. Dlaczego? Dane wpisane przez użytkownika w formularz przechodzą przez napisany przez Ciebie javascript.. Jeśli chcesz możesz je jak Ci się podoba edytywać zanim dotrą na serwer.. Gdyby ta możliwość była zachowana przy przesyłaniu plików to by oznaczało, że możesz bez wiedzy użytkownika wybrać sobie dowolny inny plik z jego komputera.. to nazywam poważną luką, której oczywiście nie ma. Hawk Ci podał link, gdzie jest opisane jak odbezpieczyć tę lukę w firefoxie.. i to jest jedyna znana mi możliwość jak to zrobić ajaxem.. Każde tzw inne możliwości to właśnie ukryta ramka... a to z ajaxem nie ma nic wspólnego. Ten post edytował mariuszn3 3.04.2006, 16:20:02 |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 56 Pomógł: 0 Dołączył: 14.06.2002 Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 600 Pomógł: 2 Dołączył: 1.09.2002 Skąd: Wrocław Ostrzeżenie: (0%) ![]() ![]() |
Napiszcie coświęcej na temat tej ukrytej ramki...
Przygoitowuje galerie zdjęć opartą na AJAX'ie (wszczytywanie listy plików, kategorie, zapisywanie opisów itp..) Wiem już, że za pomocą AJAX'a nie da sie zrobić uploadu plików pod IE... Jak miałby wyglądać ten upload z ukrytą ramką.. napiszczie coświęcej... ![]() |
|
|
![]() ![]()
Post
#9
|
|
![]() Grupa: Zarejestrowani Postów: 331 Pomógł: 1 Dołączył: 23.05.2004 Skąd: Tarnów/Londyn Ostrzeżenie: (0%) ![]() ![]() |
widze ze nie tylko ja spotkalem sie z tym bledem
tez cos takiego pojawilo mi sie w konsoli js ale w innej sytuacji, TUTAJ opisanej. moze ktos wie co ten komunikat oznacza ? -------------------- php 5.1.2 & Apache 2.0.50 & MySQL 4.1.7 @ WinXP Pro
..:: GG 6449856 ::.. www.londyn.me.uk - ogłoszenia mieszkaniowe dla Londynu |
|
|
![]() ![]()
Post
#10
|
|
![]() Grupa: Zarejestrowani Postów: 58 Pomógł: 5 Dołączył: 2.05.2006 Ostrzeżenie: (0%) ![]() ![]() |
Myślę, że wszyscy tego szukali:
![]() http://uber-uploader.sourceforge.net polecam, świetnie zrobiony uploader na ajaxie, bez odświeżania strony itp pozdrawiam |
|
|
![]()
Post
#11
|
|
![]() Grupa: Zarejestrowani Postów: 352 Pomógł: 0 Dołączył: 22.01.2006 Ostrzeżenie: (0%) ![]() ![]() |
Ten uploader nie ma nic wspólnego z ajaxem. Jego główny atut to progress bar, który jest serwowany za pomocą dodatkowej ramki.
|
|
|
![]()
Post
#12
|
|
Grupa: Zarejestrowani Postów: 1 Pomógł: 0 Dołączył: 19.09.2004 Ostrzeżenie: (0%) ![]() ![]() |
Na AJAXie oparty jest w2box - http://labs.beffa.org/w2box/
|
|
|
![]()
Post
#13
|
|
![]() Grupa: Zarejestrowani Postów: 352 Pomógł: 0 Dołączył: 22.01.2006 Ostrzeżenie: (0%) ![]() ![]() |
Trochę pośpieszyłem się z poprzednią odpowiedzią (2 posty wyżej). Uber-uploader ma w opcji wspomaganie przez ajax (progress bar). I to obok tego w2box'a chyba najlepsze rozwiązania jakie są korzystając z html+javascript.
Nie mniej rozwiązania korzystające po stronie klienta z html+javascript nie są w stanie przeskoczyć jednego ograniczenia. W html'u dodając pliki do przekazania na serwer możemy je dodawać tylko pojedyńczo. Może to być bardzo uciążliwe jeśli chcemy przesłać na przykład kilkadziesiąt plików (każdy z nich musimy dodawać do formularza osobno). Okazuje się jednak, że i na to jest rada. Ostatnia wersja Flash (8.0) ma wbudowaną funkcjonalność przesyłania plików od użytkownika na serwer i można zastosować taką wersję okienka przeglądania zawartości dysku, która pozwala wybierać nie ograniczoną ilość plików -> Demo No i to chyba wszystko czego trzeba aby stworzyć w pełni satysfakcjonujący uploader plików ![]() Ajax może jedynie przysłużyć się w aktualizowaniu progress bar'u w rozwiązaniach html+js |
|
|
![]()
Post
#14
|
|
Grupa: Zarejestrowani Postów: 124 Pomógł: 0 Dołączył: 26.10.2004 Skąd: Rybnik Ostrzeżenie: (0%) ![]() ![]() |
przy opcji z flashem problem jest już sam w sobie... flash, na którego na dodatek ostatnio windows w IE dodał pewne ograniczenia...
do rozwiązania w2box jest jedno ale... musi działać łącznie z perlem, a nie każdy hosting to obsługuje... Mimo to w2box jest chyba poprostu świetny... w przypadku gdy nie mamy perla, pozostaje nam poprostu iframe... -------------------- Hardware: Celeron 3.06, 512 MB DDR
Software: Apache 2.0, MySQL 4.0, php 4.3.1, Zend 5.1, Firefox |
|
|
![]()
Post
#15
|
|
![]() Grupa: Zarejestrowani Postów: 352 Pomógł: 0 Dołączył: 22.01.2006 Ostrzeżenie: (0%) ![]() ![]() |
[quote name='anopak' date='26.05.2006, 17:46 ' post='260639']
przy opcji z flashem problem jest już sam w sobie... flash, na którego na dodatek ostatnio windows w IE dodał pewne ograniczenia...[/quote] No to jest oczywiste.. ale chodzi o to, że nie ma na to alternatywy, Chcesz mieć uploader, w którym będziesz miał progress bar i możliwośc łatwego wgrywania dużej ilości pliku. Tylko Flash to potrafi. Akurat w tym przypadku też bym się nie brał pod uwagę IE i inne przeglądarkowe różnice. Możliwość wgrywania plików na serwer nie jest charakterystyczną częścią funkcjonalności zwykłej strony internetowej ale bardziej aplikacji o wyższym poziomie interakcji z użytkownikiem, spersonalizowanej aplikacji. Jeśli użytkownik decyduje się na korzystanie z tego typu aplikacji to aby mógł korzystać z bardziej wyszukanych rozwiązań uważam, że jest zupełnie fair zawęzić pole obsługiwanych wyszukiwarek (i tak przecież szeroko dostępnych i darmowych), w tym momencie mamy pełne prawo aby też wymagać odpowiedniego oprogramowania od użytkownika. [quote name='anopak' date='26.05.2006, 17:46 ' post='260639'] do rozwiązania w2box jest jedno ale... musi działać łącznie z perlem, a nie każdy hosting to obsługuje... Mimo to w2box jest chyba poprostu świetny... w przypadku gdy nie mamy perla, pozostaje nam poprostu iframe... [/qoute] W tym momencie wracasz do punktu wyjścia.. Cały ten post rozbija się o to, jak stworzyć funkcjonalny szybki uploader plików za pomocą dostępnych technologii, inny od większości rozwiązań obecnych w seci. Rezygnując z flasha i perla znowu dajesz użytkownikowi uploader, który co najwyżej nadaje się do wgrywanie pojedyńczych nie dużych plików, czyli po prostu html'owy standard. Zwróć uwagę, że nie jesteś w stanie podać paska progresu tylko za pomocą html+js +php.. do tego właśnie potrzebny jest perl. P.S. Niech admini poprawią cytowanie w forum.. już nie mam siły zgadywać czemu [quote] [/quote] raz działa a raz nie działa |
|
|
![]()
Post
#16
|
|
Grupa: Zarejestrowani Postów: 124 Pomógł: 0 Dołączył: 26.10.2004 Skąd: Rybnik Ostrzeżenie: (0%) ![]() ![]() |
Cytat(mariuszn3) Akurat w tym przypadku też bym się nie brał pod uwagę IE chodzi o to, że aktualnie aby uaktywnić flasha w IE trzeba go kliknąć (wymogi patentu...) Cytat(mariuszn3) (...)html+js +php.. do tego właśnie potrzebny jest perl. i tu się mylisz... za pomocą php i js dasz radę stworzyć nawet pasek postępu... odpowiedni moduł do apache... co do ilości plików przesyłanych naraz, też jest na to sposób... -------------------- Hardware: Celeron 3.06, 512 MB DDR
Software: Apache 2.0, MySQL 4.0, php 4.3.1, Zend 5.1, Firefox |
|
|
![]()
Post
#17
|
|
![]() Grupa: Zarejestrowani Postów: 352 Pomógł: 0 Dołączył: 22.01.2006 Ostrzeżenie: (0%) ![]() ![]() |
chodzi o to, że aktualnie aby uaktywnić flasha w IE trzeba go kliknąć (wymogi patentu...) To wie każdy kto pracuje przy stronach, jednak nie za bardzo rozumiem jak to się ma do tego o czym pisałem. i tu się mylisz... za pomocą php i js dasz radę stworzyć nawet pasek postępu... odpowiedni moduł do apache... Czyli da się za pomocą apache+php sprawdzać postęp ściągania pliku od klienta (?) Będę wdzięczny za jakiś link co do ilości plików przesyłanych naraz, też jest na to sposób... Nie wiem czy uważnie przeczytałeś o czym pisałem... to, że się da przesłać wiele plików na raz za pomocą jednego formularza jest oczywiste..problem w tym, że każdy z nich trzeba dodawać do formularza osobno i to jest uciążliwe, z tego co wiem nie ma na to rozwiązania poprzez html+js. |
|
|
![]()
Post
#18
|
|
Grupa: Zarejestrowani Postów: 124 Pomógł: 0 Dołączył: 26.10.2004 Skąd: Rybnik Ostrzeżenie: (0%) ![]() ![]() |
Cytat(mariuszn3) Czyli da się za pomocą apache+php sprawdzać postęp ściągania pliku od klienta (?) Będę wdzięczny za jakiś link proszę bardzo: 2 pierwsze wyniki... -------------------- Hardware: Celeron 3.06, 512 MB DDR
Software: Apache 2.0, MySQL 4.0, php 4.3.1, Zend 5.1, Firefox |
|
|
![]()
Post
#19
|
|
![]() Grupa: Zarejestrowani Postów: 189 Pomógł: 0 Dołączył: 4.07.2004 Skąd: z neostrady Ostrzeżenie: (0%) ![]() ![]() |
No tak, ale bez patchowania oprogramowania na serwerze się nie obejdzie. A to nie zawsze da się zrobić.
|
|
|
![]()
Post
#20
|
|
Grupa: Zarejestrowani Postów: 2 Pomógł: 0 Dołączył: 28.12.2009 Ostrzeżenie: (0%) ![]() ![]() |
Witam
Tutaj mam jedno rozwiązanie upload-plikow-flex-flash-ajax Stary post ale temat ciągle aktualny i poszukiwany ![]() Pozdrawiam. |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 5.07.2025 - 23:36 |