Siedzę od parunastu godzin nad rozwiązaniem problemu jednak nie wiem jak go rozwiązać. Chciałbym pobrać plik z mojego konta z serwisu Dropbox na mój serwer za pomocą cURL'a jednak po ustawieniu odpowiednich parametrów, pobieranie nie działa. Żeby nie być gołosłownym napisałem taki kod:
$c = curl_init(); curl_setopt($c, CURLOPT_URL, 'https://www.dropbox.com/s/3lmrjqqe9mjmffv/pliktestowy.rar?dl=1'); // Adres do pliku curl_setopt($c, CURLOPT_SSL_VERIFYPEER, true); //Włączona obsługa SSL curl_setopt($c ,CURLOPT_SSL_VERIFYHOST, 2); //Też coś od SSL ;) curl_setopt($c ,CURLOPT_CAINFO, dirname(__FILE__) . '/ca-bundle.pem'); // Próbowałem użyć certyfikatu - na nic to się nie zdało, nie mam pewności czy ten certifikat co mam jest poprawny... curl_setopt($c, CURLOPT_HEADER, 1); //Wyświetlenie nagłówka zwróconego przez serwer curl_setopt($c, CURLOPT_NOBODY, true); //Wyłączenie wyświetlania strony / pliku curl_setopt($c, CURLOPT_RETURNTRANSFER, 1); //Czy ma zwrócić transfer curl_setopt($c, CURLOPT_FOLLOWLOCATION, 1); //Obsługa przekierowań curl_setopt($c, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.56 Safari/537.17'); $h = curl_exec($c); echo curl_getinfo($c,CURLINFO_CONTENT_LENGTH_DOWNLOAD); // Odczytanie wielkości pliku. Wyświetla "-1" czyli wystąpił błąd
Używając funkcji file_get_content('https://www.dropbox.com/...') wszystko idzie pięknie, przekierowania działają, nie trzeba się bawić w jakieś ustawianie lecz ta funkcja mnie zbytnio ogranicza i nie mam dostępu do wielu opcji jakie ma cURL.
Możecie testować skrypt używając linku podanego w pierwszym kodzie - działa bezproblemowo przez przeglądarkę.
Z góry bardzo dziękuję za pomoc !