使用php下载Dropbox文件输出404页面未找到错误

使用php下载Dropbox文件输出404页面未找到错误,php,curl,dropbox,dropbox-api,php-curl,Php,Curl,Dropbox,Dropbox Api,Php Curl,这是我的网站用来下载pdf文件的一段代码,这些文件可以在我的Dropbox中找到 $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, CURLO

这是我的网站用来下载pdf文件的一段代码,这些文件可以在我的Dropbox中找到

        $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);
我刚刚得到一个pdf文件,其中打印了404页未找到错误。 当我运行一个简单的linux shell命令时:
curl-L-o test-pdf.pdfhttps://www.dropbox.com/s/abctokenKeyxyz/test.pdf?dl=1
它工作正常

现在,我尝试使用Dropbox API从服务器获取文件,然后将其保存到服务器。但我必须面对的主要挑战是,我只有“Dropbox共享url”可用。是否仅通过使用共享url就可以使用API将文件从Dropbox下载到服务器?或者只需传递OAuth 2.0密钥和dropbox文件共享url,就可以使用php curl下载dropbox文件吗


谢谢你的帮助

检查这个@Jah-hi,我已经在那篇文章中找到了答案。但有些事情我想不出来。1) 它使用:OAuth 1.0,它已经过时了2)我想它需要目录名“$dir”,我没有。我只有一个共享url 3)它为用户输出下载链接,我实际上需要先将其复制到我的服务器,然后再让用户下载文件如果从命令行运行
curl
仍然有效,那么我希望使用PHP中的
curl
仍然有效。也许您可以与我们的支持团队共享您使用的确切URL:@smarx我甚至尝试使用exec_shell执行curl命令:$cmd='curl-L-o/path/dest/test.pdf';壳牌执行官($cmd);但是也不走运。我相信这是/已经在一张支持票中提到的。检查这个@Jah hi,我已经在那篇帖子中找到了答案。但有些事情我想不出来。1) 它使用:OAuth 1.0,它已经过时了2)我想它需要目录名“$dir”,我没有。我只有一个共享url 3)它为用户输出下载链接,我实际上需要先将其复制到我的服务器,然后再让用户下载文件如果从命令行运行
curl
仍然有效,那么我希望使用PHP中的
curl
仍然有效。也许您可以与我们的支持团队共享您使用的确切URL:@smarx我甚至尝试使用exec_shell执行curl命令:$cmd='curl-L-o/path/dest/test.pdf';壳牌执行官($cmd);但也不走运。我相信这是/已经在支持票中提到的。