Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][cURL] Pobieranie załącznika
Forum PHP.pl > Forum > Przedszkole
lukaswit
Używam cURLa do logownia i pobiernia pliku CSV który jest załącznikiem (nie mam linku bezpośredniego do pliku, w nagłowku odpowiedzi HTTP mam ciąg: content-disposition: attachment; filename=mojplik.csv)

Kod
$c = curl_init();
  curl_setopt($c, CURLOPT_URL, "https://adres.pl/index.php?login=1");
  curl_setopt($c, CURLOPT_SSL_VERIFYPEER, FALSE);
  curl_setopt($c, CURL_POST, 1);
  curl_setopt($c, CURLOPT_POSTFIELDS, "login=mojlogin&password=mojehaslo");
  curl_setopt($c, CURLOPT_RETURNTRANSFER, TRUE);
  curl_exec($c);
  echo "Logowanie: OK<br>";
  
  curl_setopt($c, CURLOPT_URL, "https://adres.pl/index.php?action=StronaZPlikiem");
  curl_exec($c);
  echo "Strona z plikiem: OK<br>";
  
  curl_setopt($c, CURLOPT_URL, "https://adrespl/index.php?action=PobierzCSV");
  $odpowiedz=curl_exec($c);
  echo $odpowiedz;
  
  curl_close($c);

Niestety nie wiem jak obsłużyć się z tym plikiem. Dostaje pustą odpowiedz, taka sama jakbym chcial otworzyc link PobierzCSVw nowym oknie (tyle że wtedy w przeglądarce otwiera sie jeszcze okno z zapisaniem pliku). Jak pobrac zawartosc tego pliku do dalszej obrobki? Co mogę robić źle?

Jeśli ktoś mógłby podrzucić jakiekolwiek wskazówki byłbym zoobowiązany.
hwao
Podaj dokładnie całą zawartość odpowiedzi, przydały by się nagłówki http oraz zawartość dokumentu.

Nagłówek:
Kod
content-disposition: attachment; filename=mojplik.csv


Oznacza ze w odpowiedzi dostajesz plik który powinieneś zapisać na dysku pod nazwą "mojplik.csv". Czyli w odpowiedzi od serwera powinieneś otrzymać interesujące Cię dane.

Być może gubisz sesje i dla tego wysyła Ci pusty dokument, z powodu braku dostępu.
lukaswit
Dzięki. Faktycznie gubiło sesję. Trzeba było tylko ustawić do przechowynia caisteczek dwie opcje;
Kod
curl_setopt($curl, CURLOPT_COOKIEFILE, "cookiefile");
curl_setopt($curl, CURLOPT_COOKIEJAR, "cookiefile");
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.
Invision Power Board © 2001-2025 Invision Power Services, Inc.