Моя проблема проста. Я хочу загрузить файл Dropbox через PHP на мой сервер. Пример URL-адреса Dropbox (не фактический URL):
https://dl.dropboxusercontent.com/content_link/tnrRxOCfzR4hN70jpWfIpZelnPqCLjPJQ3Ii0S1tDQ3RIgcCVCTphsAzAEiis309?dl=1
Когда я лично загружаю это, конечно это работает.
Но когда я пытаюсь использовать curl
или же file_get_contents
не работает Я знаю мой curl
код работает, так как я могу загружать другие файлы с других сайтов, используя тот же код. Так что, должно быть, я что-то упустил, чтобы скачать что-то из Dropbox.
Я хочу скачать файл без использования Dropbox API.
Кто-нибудь?
Благодарю.
РЕДАКТИРОВАТЬ:
Вот мой код cUrl:
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://dl.dropboxusercontent.com/content_link/SAMPLELINKONLYtDQ3RIgcCVCTphsAzAEiis309?dl=1');
curl_setopt($ch, CURLOPT_TIMEOUT, 30);
curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.1; Trident/5.0)");
curl_setopt($ch, CURLOPT_REFERER, "http://google.com");
curl_setopt($ch, CURLOPT_COOKIEJAR, $this->cookiejar);
curl_setopt($ch, CURLOPT_COOKIEFILE, $this->cookiefile);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($ch, CURLOPT_HEADER, 1);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_VERBOSE, 1);
$this->output = curl_exec($ch);
$this->info = curl_getinfo($ch);
$header_size = $this->info['header_size'];
$this->head = substr($this->output, 0, $header_size);
$this->body = substr($this->output, $header_size);
curl_close($ch);
После чего я получаю тело и сохраняю его в файл изображения:
file_put_contents($this->download_folder.'/image-' . time() . rand(1000, 9999) . '.jpg', $this->body);
file_put_contents
код делается аналогично:
file_put_contents($this->download_folder.'/image-' . time() . rand(1000, 9999) . '.jpg', file_get_contents(https://dl.dropboxusercontent.com/content_link/SAMPLELINKONLYtDQ3RIgcCVCTphsAzAEiis309?dl=1));
Задача ещё не решена.
Других решений пока нет …