这是我的网站用来下载我的 Dropbox 中提供的 pdf 文件的一段代码。
$url = 'https://www.dropbox.com/s/abctokenKeyxyz/test.pdf?dl=1';
$fullpath = '/path/to/dest/';
$ch = curl_init($url);
$fp = fopen($fullpath, 'w');
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_HEADER, 1);
curl_setopt($ch, CURLOPT_BINARYTRANSFER, 1);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 0);
curl_setopt($ch, CURLOPT_FILE, $fp);
$rawdata = curl_exec($ch);
curl_close($ch);
fwrite($fp, $rawdata);
fclose($fp);
直到昨天晚上它都工作得很好。但突然“404 - 找不到页面错误”开始出现在下载的文件中。该文件在 Dropbox 中仍然可用,我没有更改权限。我什至在 php curl 中添加了重定向选项,但它没有用。
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, TRUE);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
我刚刚收到一个带有 404 - page not found 错误的 pdf 文件。当我运行一个简单的 linux shell 命令时:curl -L -o test-pdf.pdf https://www.dropbox.com/s/abctokenKeyxyz/test.pdf?dl=1
它工作正常。
好吧,现在我正在尝试使用 Dropbox API 从服务器获取文件,然后将其保存到服务器。但我必须面对的主要挑战是我只有“Dropbox 共享网址”可用。无论如何,仅通过使用共享 URL 就可以使用 API 将文件从 Dropbox 下载到服务器?或者是否可以通过传递 OAuth 2.0 密钥和 Dropbox 文件共享 url 来使用 php curl 下载 Dropbox 文件?
谢谢您的帮助!