Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Upload dużych katalogów na serwer., Jak sobie radzicie z uploadem np. Zend Framework?
kodereq
post 20.02.2010, 09:43:42
Post #1





Grupa: Zarejestrowani
Postów: 87
Pomógł: 0
Dołączył: 27.02.2009

Ostrzeżenie: (0%)
-----


Zastanawia mnie jak sobie radzicie z uploadem rozbudowanych katalogów na serwer. Oczywisty jest fakt, że uploadowanie każdego pliku oddzielnie zajmuje znacznie więcej niż upload np. gotowej paczki .rar z katalogiem.

Tutaj rodzi się właśnie moje pytanie: czy znacie jakieś sposoby np. na uniwersalną kompresję umożliwiającą odpakowanie katalogu po uploadzie? Przykładem rozwiązania może być np. kompresja .rar i wywołanie exec "unrar" - jednak wiadomo, że nie wszędzie dostępne jest zarówno exec, jak i unrar.

Znalazłem coś takiego: http://www.php.net/manual/en/refs.compression.php jednak każde z tych rozszerzeń wymaga instalacji / konfiguracji w php.ini - więc nie wiem czy którekolwiek z nich jest dostatecznie elastyczne (dostępne na większości hostingów)

Ten post edytował kodereq 20.02.2010, 10:04:06
Go to the top of the page
+Quote Post
erix
post 20.02.2010, 11:21:22
Post #2





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




Cytat
Tutaj rodzi się właśnie moje pytanie: czy znacie jakieś sposoby np. na uniwersalną kompresję umożliwiającą odpakowanie katalogu po uploadzie? Pr

Najbardziej uniwersalne są formaty uniksowe - tar, gzip, bzip2.

Ich obsługa jest wbudowana w PHP, więc nie ma z tym problemu. Tak samo do tara - jest gotowa klasa do tego.

Na szczęście, serwerów blokujących exec, itp, jest coraz mniej (a jeśli jeszcze są, to spokojnie zmień; konkurencja nie śpi), więc wystarczy wszystko spakować do tgz, stworzyć skrypt dekompresujący o podobnej budowie:

  1. <?PHP
  2. `tar -xzf archiwum.tgz`;

wywołać go z przeglądarki i problem z głowy. Korzystam z tej metody już dość długo i jest praktycznie niezawodna. winksmiley.jpg


--------------------

ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW!
Go to the top of the page
+Quote Post
kodereq
post 20.02.2010, 14:18:40
Post #3





Grupa: Zarejestrowani
Postów: 87
Pomógł: 0
Dołączył: 27.02.2009

Ostrzeżenie: (0%)
-----


Dzięki za odpowiedź. Natrafiłem jeszcze na http://de3.php.net/manual/en/book.zlib.php i http://www.phpclasses.org/browse/package/2495.html Ponoć też bardzo elastyczne.
Go to the top of the page
+Quote Post
magnus
post 20.02.2010, 17:29:58
Post #4





Grupa: Zarejestrowani
Postów: 99
Pomógł: 15
Dołączył: 15.11.2007
Skąd: Nowogród Bobrz.

Ostrzeżenie: (0%)
-----


Najmniej problemu jest, jeśli mamy dostęp do konta przez shell smile.gif Jak jest shell, to jest i zazwyczaj MC (chociaż spotkałem się z serwerem, na którym nie było... ale dał się zainstalować na koncie usera winksmiley.jpg ). Wówczas bez żadnych kombinacji można sobie spakować co się chce, wysłać ftp-em i na serwerze rozpakować gdzie się chce.


--------------------
Efemental.pl - nasz punkt słyszenia :: recenzje :: tylko metal!
Opensource'owy klon Cantra: http://github.com/magnax/Simtr
Go to the top of the page
+Quote Post
erix
post 20.02.2010, 17:34:03
Post #5





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




Ach, zapomniałem jeszcze o PHAR. winksmiley.jpg


--------------------

ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW!
Go to the top of the page
+Quote Post
DannyM
post 18.03.2010, 12:53:01
Post #6





Grupa: Zarejestrowani
Postów: 507
Pomógł: 2
Dołączył: 30.10.2003
Skąd: Poznań

Ostrzeżenie: (10%)
X----


pozwolcie, ze sie dolacze z pytaniem.
Czy da sie zacignac z innego serwera plik + - 40mb na swoj i nie trafiajac na problem z pamiecia
"Fatal error: Allowed memory size of 62914560 bytes exhausted (tried to allocate 38355758 bytes) in" questionmark.gif
Go to the top of the page
+Quote Post
ShadowD
post 18.03.2010, 13:42:22
Post #7





Grupa: Zarejestrowani
Postów: 1 333
Pomógł: 137
Dołączył: 25.03.2008
Skąd: jesteś??

Ostrzeżenie: (0%)
-----


## Zwiekszenie limitu pamieci
php_value memory_limit 64M


--------------------
Mój blog - o wszystkim i niczym ale zazwyczaj związane z informatyką! ;-)
Githube

Usługi spawalnicze i monterskie | Park linowy Lublin i Okunince
Go to the top of the page
+Quote Post
DannyM
post 18.03.2010, 14:21:31
Post #8





Grupa: Zarejestrowani
Postów: 507
Pomógł: 2
Dołączył: 30.10.2003
Skąd: Poznań

Ostrzeżenie: (10%)
X----


Cytat(ShadowD @ 18.03.2010, 14:42:22 ) *
## Zwiekszenie limitu pamieci
php_value memory_limit 64M


ale w php.ini mam
max_execution_time = 300 ; Maximum execution time of each script, in seconds
max_input_time = 70 ; Maximum amount of time each script may spend parsing request data
memory_limit = 70M ; Maximum amount of memory a script may consume (8MB)
Go to the top of the page
+Quote Post
dr_bonzo
post 18.03.2010, 15:00:29
Post #9





Grupa: Przyjaciele php.pl
Postów: 5 724
Pomógł: 259
Dołączył: 13.04.2004
Skąd: N/A

Ostrzeżenie: (0%)
-----


A jak go sciagasz? file_get_contents() - wiesz pewnie ze to laduje caly plik do pamieci? masz przeciez fread() fwrite() itp.


--------------------
Nie lubię jednorożców.
Go to the top of the page
+Quote Post
DannyM
post 18.03.2010, 15:21:13
Post #10





Grupa: Zarejestrowani
Postów: 507
Pomógł: 2
Dołączył: 30.10.2003
Skąd: Poznań

Ostrzeżenie: (10%)
X----


mam
  1. $data = file_get_contents($url, false, $context);
  2. $fp = fopen($file, "w");
  3. flock($fp, 2);
  4. fwrite($fp, $data);
  5. flock($fp, 3);
  6. fclose($fp);


Czy jest inne wyjscie?
Go to the top of the page
+Quote Post
dr_bonzo
post 18.03.2010, 16:44:59
Post #11





Grupa: Przyjaciele php.pl
Postów: 5 724
Pomógł: 259
Dołączył: 13.04.2004
Skąd: N/A

Ostrzeżenie: (0%)
-----


Curl? Wazne zeby czytac plik partiami i od razu zapisywac.


--------------------
Nie lubię jednorożców.
Go to the top of the page
+Quote Post
DannyM
post 19.03.2010, 14:16:37
Post #12





Grupa: Zarejestrowani
Postów: 507
Pomógł: 2
Dołączył: 30.10.2003
Skąd: Poznań

Ostrzeżenie: (10%)
X----


Szczerze powiem, ze nie wiem jak sie do tego zabrac blink.gif

Ten post edytował DannyM 19.03.2010, 14:16:53
Go to the top of the page
+Quote Post
erix
post 19.03.2010, 22:54:26
Post #13





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




Otwórz plik źródłowy tymi samymi poleceniami, co zapisujesz, a nie via file_get_contents.


--------------------

ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW!
Go to the top of the page
+Quote Post
kubap007
post 20.03.2010, 17:25:28
Post #14





Grupa: Zarejestrowani
Postów: 38
Pomógł: 0
Dołączył: 29.05.2007

Ostrzeżenie: (0%)
-----


A co zrobić jeżeli musimy dokonać w takim przypadku autoryzacji. Z tego co wiem w file_get_contents() jest taka opcja czy w fread() też questionmark.gifquestionmark.gif
Go to the top of the page
+Quote Post
DannyM
post 20.03.2010, 17:37:18
Post #15





Grupa: Zarejestrowani
Postów: 507
Pomógł: 2
Dołączył: 30.10.2003
Skąd: Poznań

Ostrzeżenie: (10%)
X----


Cytat(kubap007 @ 20.03.2010, 18:25:28 ) *
A co zrobić jeżeli musimy dokonać w takim przypadku autoryzacji. Z tego co wiem w file_get_contents() jest taka opcja czy w fread() też questionmark.gifquestionmark.gif

Oo wlasnie oto jest pytanie
Go to the top of the page
+Quote Post
erix
post 20.03.2010, 17:45:06
Post #16





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




A zaglądaliście czasem do manuala, co jest ostatnim parametrem? Podpowiedź: stream_context_create


--------------------

ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW!
Go to the top of the page
+Quote Post
kubap007
post 20.03.2010, 18:00:27
Post #17





Grupa: Zarejestrowani
Postów: 38
Pomógł: 0
Dołączył: 29.05.2007

Ostrzeżenie: (0%)
-----


Oki nie doczytałem (mea culpa), ale mam jeszcze jedno może i głupie pytanie, ale nie wiem jak sprawdzić długość pliku (potrzebne do fread() ). filesize() nie zadziała (sprawdziłem) i nie wiem jak to ugryźć.
Go to the top of the page
+Quote Post
erix
post 20.03.2010, 19:24:31
Post #18





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




Czytałeś kursy, czy nie?

Gdybyś czytał, to byś wiedział, do czego jest feof. (tak, to jest związane z Twoim pytaniem)


--------------------

ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW!
Go to the top of the page
+Quote Post
kubap007
post 20.03.2010, 20:18:47
Post #19





Grupa: Zarejestrowani
Postów: 38
Pomógł: 0
Dołączył: 29.05.2007

Ostrzeżenie: (0%)
-----


Kurs czytałem, zawsze od tego zaczynam. Ale kilka(naście) godzin przed monitorem robi swoje.
BTW. Dzięki za pomoc.
Go to the top of the page
+Quote Post
DannyM
post 22.03.2010, 09:16:52
Post #20





Grupa: Zarejestrowani
Postów: 507
Pomógł: 2
Dołączył: 30.10.2003
Skąd: Poznań

Ostrzeżenie: (10%)
X----


Cytat(erix @ 20.03.2010, 18:45:06 ) *
A zaglądaliście czasem do manuala, co jest ostatnim parametrem? Podpowiedź: stream_context_create

Super winksmiley.jpg
Dodaje punkcik
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 20.07.2025 - 07:17