Zwrócenie pliku pobranego cURL-em |
Zwrócenie pliku pobranego cURL-em |
20.08.2015, 21:55:02
Post
#1
|
|
Grupa: Zarejestrowani Postów: 23 Pomógł: 0 Dołączył: 14.12.2012 Ostrzeżenie: (0%) |
Witam,
Mam taki problem, otóż pobrałem sobie cURL'em plik z serwera, jednakże zapisuje mi się on na razie na moim serwerze. Macie Panowie jakieś sposoby jak wymusić aby otwrzyło się nam normalnie okno w przeglądarce gdzie zapisać plik gdy klient otworzy skrypt? Poniżej ten skrypt co napisałem, zapisuje on pobrany plik do katalogu w którym znajduje sie skrypt php. A teraz jak uczynić jak ktoś otworzy np. www.mojastrona.pl/skrypt.php aby otworzyło mu sie okno z pobieraniem (te domyślne).
|
|
|
20.08.2015, 22:18:46
Post
#2
|
|
Grupa: Zarejestrowani Postów: 246 Pomógł: 79 Dołączył: 25.05.2010 Ostrzeżenie: (0%) |
Jeśli nie masz zamiaru wykorzystywać pliku później to nie potrzebnie go zapisujesz. Możesz od razu wysłać go do użytkownika:
-------------------- Jeśli ten post pomógł to kliknij przycisk po lewej stronie.
Nie pomagam przez PW, GG, e-mail, faks, telegram, znaki dymne, ... |
|
|
21.08.2015, 06:19:14
Post
#3
|
|
Grupa: Zarejestrowani Postów: 23 Pomógł: 0 Dołączył: 14.12.2012 Ostrzeżenie: (0%) |
Faktycznie działa, najlepsze jest to, że to rozwiązanie już testowałem wcześniej ale nie działało.
Wiecie co było powodem? Podanie rozmieru pliku jakos Automatycznie plik sie zapisywał z rozmiarem 0kb ... gdy nie podaje wgl rozmiaru, działa perfekto. edit: Jeszcze taki problem zauważyłem, że jeżeli plik na serwerze jest duży (powyżej 20-50mb) to uruchomienie okna pobierania trwa bardzo długo, wrażenie jest takie jakby najpierw skrypt pobierał sobie plik, żeby następnie go wyświetlić użytkownikowi do pobrania. Idzie jakoś to obejść tak aby użytkownik miał od razu popup z pobieraniem? Ten post edytował trollman 21.08.2015, 18:36:48 |
|
|
22.08.2015, 14:14:13
Post
#4
|
|
Grupa: Zarejestrowani Postów: 246 Pomógł: 79 Dołączył: 25.05.2010 Ostrzeżenie: (0%) |
Nic dziwnego, że nie zadziałało bo filesize() jako parametr przyjmuje nazwę pliku a nie jego zawartość. Możesz przetestować strlen(): Cytat strlen() returns the number of bytes rather than the number of characters in a string. Cytat(trollman @ 22.08.2015, 13:37)
Ten post edytował kartin 22.08.2015, 14:17:14 -------------------- Jeśli ten post pomógł to kliknij przycisk po lewej stronie.
Nie pomagam przez PW, GG, e-mail, faks, telegram, znaki dymne, ... |
|
|
22.08.2015, 15:57:22
Post
#5
|
|
Grupa: Zarejestrowani Postów: 23 Pomógł: 0 Dołączył: 14.12.2012 Ostrzeżenie: (0%) |
Dodałem
Aby nie barał nagłówków do ściagnego mp3 jednak to nie pomogło, ciągle plik jest wiekszy niż faktycznie powinien być (przez te nagłówki chyba). A jak idzie ustawić wielkość pliku przez jego całkowitym pobraniem tak by Content-Length ustawić? |
|
|
22.08.2015, 16:23:41
Post
#6
|
|
Grupa: Zarejestrowani Postów: 246 Pomógł: 79 Dołączył: 25.05.2010 Ostrzeżenie: (0%) |
CURLOPT_HEADER ma się nijak do tego, że przed każdym wysłaniem bufora wysyłasz również swoje nagłówki. Powinny być wysłane wyłącznie jeden raz, przed rozpoczęciem wysyłania treści pliku, a nie wielokrotnie co każdą cześć pliku.
Czepiając się szczegółów to Cytat value should be a bool for the following values of the option parameter: (…) CURLOPT_HEADER ale to akurat tu nie ma znaczenia.Funkcja używana w CURLOPT_WRITEFUNCTION w tym przypadku powinna mieć tylko dwie linijki kodu: Nagłówki musisz wyciągnąć z funkcji i dać np. przed curl_exec($ch); -------------------- Jeśli ten post pomógł to kliknij przycisk po lewej stronie.
Nie pomagam przez PW, GG, e-mail, faks, telegram, znaki dymne, ... |
|
|
22.08.2015, 16:35:22
Post
#7
|
|
Grupa: Zarejestrowani Postów: 23 Pomógł: 0 Dołączył: 14.12.2012 Ostrzeżenie: (0%) |
Jest już lepiej, mp3 się sciąga nie ma błędów ale jeżeli jest to dużej mp3/set który ma ponad godzine muzyki to pobrało tylko 49min
Kod wygląda teraz tak
Dziwne bo nie pobrało całego a mp3 działa .. jakieś pomysły czasmu nie pobrało do końca całego? Dobra .. załatwił wszystko. Kartin, dzięki za pomoc raz jeszcze . Piwo dla Ciebie za wgl obecność na tym forum Ten post edytował trollman 22.08.2015, 16:53:15 |
|
|
Wersja Lo-Fi | Aktualny czas: 13.06.2024 - 03:56 |