![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 2 Pomógł: 0 Dołączył: 19.03.2013 Ostrzeżenie: (0%) ![]() ![]() |
Mam taki problem,
jest skrypt w php który ściąga dość duży plik, jednocześnie chciałbym żeby inny skrypt odczytał ilość pobranych danych do tego pliku. Jednak kiedy wywołuję w tym drugim skrypcie funkcję filesize() to ona czeka na zamknięcie tego pobieranego pliku i zwraca mi pełny rozmiar pliku (już po jego pobraniu). Czy jest może jakiś sposób aby ominąć tą blokadę? Z góry dziękuję za pomoc (IMG:style_emoticons/default/smile.gif) |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 1 527 Pomógł: 438 Dołączył: 28.06.2011 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
Przerób skrypt do pobierania tego pliku. Użyj w nim CURL aby pobierać plik.
Do tego dodaj CURLOPT_WRITEFUNCTION do ustawień CURLA. Zrob odpowiednią funkcję i podaj ją jako callback. W tej funkcji będziesz wiedział ile już ściągnęło się danego pliku - tą informację możesz gdzieś zapisywać (plik,baza itp) i odczytywać zupełnie innym skryptem. To tak w skrócie. Odsyłam do Wujka G. z frazą "CURLOPT_WRITEFUNCTION download progress" itp... Powodzenia (IMG:style_emoticons/default/wink.gif) EDIT: tak w ogóle to coś robisz źle jeśli filesize() czeka na zakończenie pobierania pliku. Z jakiej funkcji korzystasz do jego zapisu? Może blokujesz dostęp do niego flock() lub coś w tym stylu? Bo to powinno normalnie śmigać... Ten post edytował Sephirus 20.03.2013, 12:05:48 |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 2 Pomógł: 0 Dołączył: 19.03.2013 Ostrzeżenie: (0%) ![]() ![]() |
Przerób skrypt do pobierania tego pliku. Użyj w nim CURL aby pobierać plik. Do tego dodaj CURLOPT_WRITEFUNCTION do ustawień CURLA. Zrob odpowiednią funkcję i podaj ją jako callback. W tej funkcji będziesz wiedział ile już ściągnęło się danego pliku - tą informację możesz gdzieś zapisywać (plik,baza itp) i odczytywać zupełnie innym skryptem. To tak w skrócie. Odsyłam do Wujka G. z frazą "CURLOPT_WRITEFUNCTION download progress" itp... Powodzenia (IMG:style_emoticons/default/wink.gif) EDIT: tak w ogóle to coś robisz źle jeśli filesize() czeka na zakończenie pobierania pliku. Z jakiej funkcji korzystasz do jego zapisu? Może blokujesz dostęp do niego flock() lub coś w tym stylu? Bo to powinno normalnie śmigać... Dzięki wielkie, niedługo spróbuję przerobić skrypt, wcześniej plik ściągałem przez fopen/fread/fwrite ale tu chyba faktycznie curl będzie lepszy (IMG:style_emoticons/default/smile.gif) Niestety ani przerobienie tego na curl'owe zapytanie alni przerobienie skryptu tak:
nie pomogły, nadal funkcja filezise czeka aż się plik zakończy Ten post edytował mdoff 23.03.2013, 14:38:32 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 8.10.2025 - 17:39 |