![]() |
![]() |
![]()
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 ![]() |
|
|
![]() |
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 651 Pomógł: 116 Dołączył: 3.06.2012 Skąd: Lędziny Ostrzeżenie: (0%) ![]() ![]() |
Takie rzeczy robi się w javascript i pochodne (jquery/ajax).
|
|
|
![]()
Post
#3
|
|
![]() Grupa: Zarejestrowani Postów: 4 655 Pomógł: 556 Dołączył: 17.03.2009 Skąd: Katowice Ostrzeżenie: (0%) ![]() ![]() |
Takie rzeczy robi się w javascript i pochodne (jquery/ajax). Ciekawa teoria, mógłbyś opisać? -------------------- Zainteresowania: C#, PHP, JS, SQL, AJAX, XML, C dla AVR
Chętnie pomogę, lecz zanim napiszesz: Wujek Google , Manual PHP |
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 651 Pomógł: 116 Dołączył: 3.06.2012 Skąd: Lędziny Ostrzeżenie: (0%) ![]() ![]() |
@UP W twoim podpisie, pierwszy link
![]() Podpowiem tylko, że mając procent ilości przesłanych już informacji, można dojść do tego czego użytkownik oczekuje. Ten post edytował Michael2318 20.03.2013, 06:32:30 |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 1 890 Pomógł: 339 Dołączył: 14.12.2006 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
@Michael2318, podłączam się do pytania, to bardzo mnie zainteresowało jak za pomocą JS/Ajax sprawdzić wielkość pliku (w dodatku na serwerze
![]() Ten post edytował sowiq 20.03.2013, 10:29:45 |
|
|
![]()
Post
#6
|
|
![]() Grupa: Zarejestrowani Postów: 2 148 Pomógł: 230 Dołączył: 26.03.2008 Ostrzeżenie: (0%) ![]() ![]() |
@Michael2318, też jestem ciekaw. Chętnie bym poszukał, ale Google mi coś już od dawna nie działa (jak zarówno inne wyszukiwarki). Mógłbyś dać jakiś szczegółowy opis?
-------------------- ET LINGUA EIUS LOQUETUR IUDICIUM
|
|
|
![]()
Post
#7
|
|
![]() 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 ![]() 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 -------------------- If you're good at something, never do it for free.
Potrzebujesz skryptu JS lub PHP - szukasz kogoś kto przetestuje twoją aplikację pod względem bezpieczeństwa? Szybko i solidnie? Napisz ;) Mój blog - Jak zwiększyć wydajność front-endu - O buforowaniu wyjścia w PHP słów kilka... |
|
|
![]()
Post
#8
|
|
![]() Grupa: Zarejestrowani Postów: 4 655 Pomógł: 556 Dołączył: 17.03.2009 Skąd: Katowice Ostrzeżenie: (0%) ![]() ![]() |
@UP W twoim podpisie, pierwszy link ![]() Podpowiem tylko, że mając procent ilości przesłanych już informacji, można dojść do tego czego użytkownik oczekuje. Ale on pobiera z jakieś serwera na swój serwer i użytkownik nie ma tutaj nic do gadania przykładem takiego serwisu jest np. twojlimit gdzie podajesz link do płatnego hostingu, oni pobierają Ci transfer i ściągają do siebie (to jedna z możliwości) Więc powiedz mi jak u diabła sprawdzisz Javascriptem ile serwer pobrał danych? -------------------- Zainteresowania: C#, PHP, JS, SQL, AJAX, XML, C dla AVR
Chętnie pomogę, lecz zanim napiszesz: Wujek Google , Manual PHP |
|
|
![]()
Post
#9
|
|
![]() Grupa: Zarejestrowani Postów: 651 Pomógł: 116 Dołączył: 3.06.2012 Skąd: Lędziny Ostrzeżenie: (0%) ![]() ![]() |
Cytat Ale on pobiera z jakieś serwera na swój serwer chyba, że tak, zwracam honor ![]() |
|
|
![]()
Post
#10
|
|
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 ![]() 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 ![]() 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: 19.08.2025 - 22:19 |