1

这是我的网站用来下载我的 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 文件?

谢谢您的帮助!

4

0 回答 0