batman
14.07.2008, 14:03:17
<?php
$pointer = fopen('../../upload/'.$file, 'wb'); // plik lokalny $fp = fopen($path, 'rb'); // plik zdalny - np <a href=\"http://www.jakisadres.pl/plik.doc\" target=\"_blank\">http://www.jakisadres.pl/plik.doc</a> $data = fread($fp, 4096
); // zmienialem wartosc 4096 na inne (duze i male) - bez efektu }
?>
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.
pyro
14.07.2008, 14:18:10
Zaglądałeś do php.ini?
batman
14.07.2008, 14:31:51
Cytat
Zaglądałeś do php.ini?
Nawet nie wiem czego mam szukać.
dr_bonzo
14.07.2008, 14:35:24
file_get_contents() pobierze ci caly plik?
batman
14.07.2008, 14:50:52
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.
kwiateusz
14.07.2008, 14:52:54
a przez ftp probowales sie polaczyc z 2gim serwerem?
dr_bonzo
14.07.2008, 14:59:51
Po zapisaniu jest obciety.. a daj strlen( file_get_contents( $plik_z_pierwszego_servera ) ); // to bedziesz wiedzial czy sciagnal sie caly; bez jego zapisywania
batman
14.07.2008, 15:01:24
Właśnie sprawdziłem i okazało się, że obcina przy pobieraniu pliku.
editCytat
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.
kwiateusz
14.07.2008, 15:07:21
manual twierdzi ze jest ftp_connect w 4ce

a moze admina zapytaj czy nie ma jakis limitow na pobieranie plikow z zew serwera
batman
14.07.2008, 15:10:06
Adminów męczę od godziny
wlamywacz
15.07.2008, 12:54:50
Batman a o shellu nie słyszałeś ? Pisz nawet do admina żeby on to zrobił.
batman
15.07.2008, 13:20:11
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ć

Niemniej jednak problem pozostał. Wget to tylko jego obejście.
zimi
15.07.2008, 16:09:38
Cytat
Cytat
Zaglądałeś do php.ini?
Nawet nie wiem czego mam szukać.
może to głupie co napiszę

:P ale ja szukałbym '51200', '50 K', '50k' i podobnych kombinacji
batman
15.07.2008, 16:19:00
Cytat
może to głupie co napiszę
Masz rację to było głupie

Rozmiar był pierwszą rzeczą jakiej szukałem.
dr_bonzo
15.07.2008, 18:26:16
A dla wszystkich plikow tak to sie zachowuje?
batman
15.07.2008, 18:27:32
Sprawdzałem tylko pliki doc i txt. W obu przypadkach obcinało plik.
kaem
15.07.2008, 19:31:46
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.
dr_bonzo
15.07.2008, 19:45:10
kaem: nawet nie wiesz o czym mowisz
kaem
15.07.2008, 20:48:50
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.
webdice
15.07.2008, 20:55:46
Spróbuj jeszcze wysłać dane postem (symulując formularz).
batman
15.07.2008, 22:01:36
@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.
wlamywacz
16.07.2008, 10:29:48
Batman to nie wiem ale jeśli php nie podoła to może jakiś klient ftp wywoływany z exec lub system ?
batman
16.07.2008, 13:43:11
@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.
sanchoo
16.07.2008, 14:21:16
@wlamywacz po exec??
http://pl2.php.net/ftp nie wystaczy??
wrzasq
16.07.2008, 19:25:17
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.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę
kliknij tutaj.