Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP] jak pobrać plik PDF z innego serwera, bez wyskakującego okienka z prośbą o zapisanie
rasten
post
Post #1





Grupa: Zarejestrowani
Postów: 86
Pomógł: 6
Dołączył: 31.05.2010

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


Witam,
tak jak w temacie, mam linka do pliku pdf i chciałbym go sobie zapisać u siebie na serwerze. Jak narazie znalazłem tylko info jak pobrać taki plik za pomocą wyskakującego okienka z prośbą o zapisanie (header + readfile). Ale ja chce chce to zrobić wszystko automatycznie bez dodatkowej akcji ze strony usera. Czyli skrypt pobiera mi ten plik i zapisuje go (skrypt nie user) na serwerze a potem zapisuje jego nazwe do bazy. Jak to można ugryźć?


EDIT:// acha i jeszcze takie pytanko z innej beczki: czemu nie mogę w wyszukiwarce forumowej szukać po słowach krótszych niż 4 litery? Przecież nasza dziedzina jest pełna skrótów technologii, języków, algorytmow itp. itd.

Ten post edytował rasten 14.03.2011, 16:17:53
Go to the top of the page
+Quote Post
Hekko
post
Post #2





Grupa: Zarejestrowani
Postów: 255
Pomógł: 23
Dołączył: 1.12.2003

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


Poprzez curl możesz pobrać plik a następnie go zapisać.
Go to the top of the page
+Quote Post
rasten
post
Post #3





Grupa: Zarejestrowani
Postów: 86
Pomógł: 6
Dołączył: 31.05.2010

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


Ok, dzięki. Zrobiłem coś takiego jak w kodzie poniżej, ale nie zawsze działa. Otóż plik pobieram przez https, a ścieżka do niego ma postać: https://jakis.adres/jakis_katalog/plik.pdf?param1=cos1&param2=cos2. Jak widać url ma parametry i to właśnie na ich podstawie jest generowany pdf. Curl tworzy u mnie na serwerze plik, ale jest on pusty;/ Nie wiem czy to wina połączenia przez ssl czy też może właśnie tych parametrów. Ktoś może pomóc?
Dodam tylko, że jak próbuje dla testów pobrać plik pdf (url bez parametrów) ze swojego serwera zdalnego przez zwykły http to nie ma problemu.

  1. $out = fopen($nazwa'.pdf', 'wb');
  2. $ch = curl_init();
  3.  
  4. curl_setopt($ch, CURLOPT_FILE, $out);
  5. curl_setopt($ch, CURLOPT_HEADER, 0);
  6. curl_setopt($ch, CURLOPT_URL, $wydruki['pdfUrl']);
  7. // opcje dla polaczenia ssl wyłączające jakieś sprawdzanie - trochę niebezpieczne rozwiązanie!
  8. curl_setopt ($ch, CURLOPT_SSL_VERIFYHOST, 0);
  9. curl_setopt ($ch, CURLOPT_SSL_VERIFYPEER, 0);


EDIT//
Dobra nieważne już, poradziłem sobie. Użyłem curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);

Ten post edytował rasten 15.03.2011, 12:18:13
Go to the top of the page
+Quote Post

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 - 03:54