Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Przenoszenie pliku między serwerami, ucina plik do 51200 bajtów
batman
post
Post #1





Grupa: Moderatorzy
Postów: 2 921
Pomógł: 269
Dołączył: 11.08.2005
Skąd: 127.0.0.1




  1. <?php
  2. $pointer = fopen('../../upload/'.$file, 'wb'); // plik lokalny 
  3. $fp = fopen($path, 'rb'); // plik zdalny - np <a href=\"http://www.jakisadres.pl/plik.doc\" target=\"_blank\">http://www.jakisadres.pl/plik.doc</a>
  4. while(!feof($fp)) {
  5. $data = fread($fp, 4096); // zmienialem wartosc 4096 na inne (duze i male) - bez efektu
  6. fwrite($pointer, $data);
  7. }
  8. fclose($fp);
  9. fclose($pointer);
  10. ?>

To jest kod odpowiedzialny za skopiowanie pliku z jednego serwera na drugi. Wiem, że można to zrobić znacznie lepiej (chociażby wget), ale ja nie mam innej możliwości.
Problemem jest to, że na jednym serwerze to działa, a na innym nie. Plik ściągnięty tą metodą ma zawsze ~50 kb (51 200 bajtów). Wiecie co może być tego przyczyną? Plik to dokument worda.
Go to the top of the page
+Quote Post
2 Stron V   1 2 >  
Start new topic
Odpowiedzi (1 - 24)
pyro
post
Post #2





Grupa: Zarejestrowani
Postów: 2 148
Pomógł: 230
Dołączył: 26.03.2008

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


Zaglądałeś do php.ini?
Go to the top of the page
+Quote Post
batman
post
Post #3





Grupa: Moderatorzy
Postów: 2 921
Pomógł: 269
Dołączył: 11.08.2005
Skąd: 127.0.0.1




Cytat
Zaglądałeś do php.ini?

Nawet nie wiem czego mam szukać.
Go to the top of the page
+Quote Post
dr_bonzo
post
Post #4





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

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


file_get_contents() pobierze ci caly plik?
Go to the top of the page
+Quote Post
batman
post
Post #5





Grupa: Moderatorzy
Postów: 2 921
Pomógł: 269
Dołączył: 11.08.2005
Skąd: 127.0.0.1




Właśnie w tym problem, że nie mam jak tego sprawdzić. Z tego co udało mi się ustalić to:
1. Plik uploadowany na serwer ma poprawną wielkość i jest odczytywalny.
2. Po zapisaniu pliku na innym serwerze jest on już obcięty. Używałem file, file_get_contents, copy i fopen.
Spróbuję jeszcze jakość znaleźć odpowiedź na pytanie, czy plik jest obcinany podczas ściągania, czy podczas zapisywania.
Go to the top of the page
+Quote Post
kwiateusz
post
Post #6


Admin Techniczny


Grupa: Administratorzy
Postów: 2 071
Pomógł: 93
Dołączył: 5.07.2005
Skąd: Olsztyn




a przez ftp probowales sie polaczyc z 2gim serwerem?
Go to the top of the page
+Quote Post
dr_bonzo
post
Post #7





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

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


Po zapisaniu jest obciety.. a daj strlen( file_get_contents( $plik_z_pierwszego_servera ) ); // to bedziesz wiedzial czy sciagnal sie caly; bez jego zapisywania
Go to the top of the page
+Quote Post
batman
post
Post #8





Grupa: Moderatorzy
Postów: 2 921
Pomógł: 269
Dołączył: 11.08.2005
Skąd: 127.0.0.1




Właśnie sprawdziłem i okazało się, że obcina przy pobieraniu pliku.


edit
Cytat
a przez ftp probowales sie polaczyc z 2gim serwerem?

To jest bardzo stary serwer, gdzie jeszcze php4 jest i bardzo mało rozszerzeń. Jedyne co mogę użyć, to właśnie fopen, file, file_get_contents, copy.
Go to the top of the page
+Quote Post
kwiateusz
post
Post #9


Admin Techniczny


Grupa: Administratorzy
Postów: 2 071
Pomógł: 93
Dołączył: 5.07.2005
Skąd: Olsztyn




manual twierdzi ze jest ftp_connect w 4ce (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) a moze admina zapytaj czy nie ma jakis limitow na pobieranie plikow z zew serwera
Go to the top of the page
+Quote Post
batman
post
Post #10





Grupa: Moderatorzy
Postów: 2 921
Pomógł: 269
Dołączył: 11.08.2005
Skąd: 127.0.0.1




Adminów męczę od godziny (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)
Go to the top of the page
+Quote Post
wlamywacz
post
Post #11





Grupa: Zarejestrowani
Postów: 535
Pomógł: 27
Dołączył: 3.05.2005

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


Batman a o shellu nie słyszałeś ? Pisz nawet do admina żeby on to zrobił.
Go to the top of the page
+Quote Post
batman
post
Post #12





Grupa: Moderatorzy
Postów: 2 921
Pomógł: 269
Dołączył: 11.08.2005
Skąd: 127.0.0.1




Cytat
Batman a o shellu nie słyszałeś ? Pisz nawet do admina żeby on to zrobił.
A co ma admin robić? Czekać aż ktoś uploaduje plik, a następnie go ręcznie przenieść?

Poza tym instaluje się właśnie wget. Udało się chociaż tyle wywalczyć (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) Niemniej jednak problem pozostał. Wget to tylko jego obejście.
Go to the top of the page
+Quote Post
zimi
post
Post #13





Grupa: Zarejestrowani
Postów: 233
Pomógł: 9
Dołączył: 3.06.2007

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


Cytat
Cytat
Zaglądałeś do php.ini?

Nawet nie wiem czego mam szukać.

może to głupie co napiszę (IMG:http://forum.php.pl/style_emoticons/default/biggrin.gif) :P ale ja szukałbym '51200', '50 K', '50k' i podobnych kombinacji
Go to the top of the page
+Quote Post
batman
post
Post #14





Grupa: Moderatorzy
Postów: 2 921
Pomógł: 269
Dołączył: 11.08.2005
Skąd: 127.0.0.1




Cytat
może to głupie co napiszę
Masz rację to było głupie (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) Rozmiar był pierwszą rzeczą jakiej szukałem.
Go to the top of the page
+Quote Post
dr_bonzo
post
Post #15





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

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


A dla wszystkich plikow tak to sie zachowuje?
Go to the top of the page
+Quote Post
batman
post
Post #16





Grupa: Moderatorzy
Postów: 2 921
Pomógł: 269
Dołączył: 11.08.2005
Skąd: 127.0.0.1




Sprawdzałem tylko pliki doc i txt. W obu przypadkach obcinało plik.
Go to the top of the page
+Quote Post
kaem
post
Post #17





Grupa: Zarejestrowani
Postów: 248
Pomógł: 38
Dołączył: 29.06.2008

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


Zobacz w php.ini linijkę : "upload_max_filesize", która określa maksymalny możliwy rozmiar wysyłanego(czy odbieranego ? sam nie wiem) pliku. Może to coś pomoże.

Ten post edytował kaem 15.07.2008, 19:32:52
Go to the top of the page
+Quote Post
dr_bonzo
post
Post #18





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

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


kaem: nawet nie wiesz o czym mowisz
Go to the top of the page
+Quote Post
kaem
post
Post #19





Grupa: Zarejestrowani
Postów: 248
Pomógł: 38
Dołączył: 29.06.2008

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


dr_bonzo: może to nie to, ale wydawało mi się, że może pomóc. Ja dopiero się uczę. A ty jak chcesz coś napisać to pisz konkretnie zamiast nabijać sobie posty.
Go to the top of the page
+Quote Post
webdice
post
Post #20


Developer


Grupa: Moderatorzy
Postów: 3 045
Pomógł: 290
Dołączył: 20.01.2007




Spróbuj jeszcze wysłać dane postem (symulując formularz).
Go to the top of the page
+Quote Post
batman
post
Post #21





Grupa: Moderatorzy
Postów: 2 921
Pomógł: 269
Dołączył: 11.08.2005
Skąd: 127.0.0.1




@kaem
upload_max_filesize jest do zupełnie innej rzeczy.

@webdicepl
Danych nie wysyłam postem między serwerami. Po prostu używam wymienionych wcześniej funkcji. Użycie posta w tym przypadku nie będzie rozwiązaniem problemu, a jego obejściem.
Go to the top of the page
+Quote Post
wlamywacz
post
Post #22





Grupa: Zarejestrowani
Postów: 535
Pomógł: 27
Dołączył: 3.05.2005

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


Batman to nie wiem ale jeśli php nie podoła to może jakiś klient ftp wywoływany z exec lub system ?
Go to the top of the page
+Quote Post
batman
post
Post #23





Grupa: Moderatorzy
Postów: 2 921
Pomógł: 269
Dołączył: 11.08.2005
Skąd: 127.0.0.1




@wlamywacz
Napiszę jeszcze raz. Nie chodzi mi o obejście problemu, bo to już zrobiłem przy pomocy wgeta. Chodzi mi o rozwiązanie tego problemu.
Go to the top of the page
+Quote Post
sanchoo
post
Post #24





Grupa: Zarejestrowani
Postów: 161
Pomógł: 1
Dołączył: 11.02.2007
Skąd: Kraków

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


@wlamywacz po exec??

http://pl2.php.net/ftp nie wystaczy??
Go to the top of the page
+Quote Post
wrzasq
post
Post #25





Grupa: Zarejestrowani
Postów: 206
Pomógł: 18
Dołączył: 6.03.2006
Skąd: Szczecin

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


sprobuj samemu socketami pobierac i zobacz, czy pokazuja sie jakies bledy polaczenia, albo jak wygladja naglowki i koncowka. i czy po pobraniu 51200 bajtow na prawde jest EOF.

@kaem: jesli sie uczysz, to nie wypowiadaj sie, bo zle i niesprawdzone rady moga jedynie zaszkodzic. skoro sie uczysz to sie ucz, a nie wymadrzaj.
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 23.08.2025 - 07:42