如何在dropbox sdk中强制下载文件

时间:2014-08-07 10:25:22

标签: php dropbox

我正在使用dropbox php sdk,我想通过浏览器下载该文件。我有一个文件预览链接但是要了解我该如何下载文件。我正在使用函数

function GetLink($dropbox_file, $preview=true, $short=true, &$expires=null)
    {
        if(is_object($dropbox_file) && !empty($dropbox_file->path)) $dropbox_file = $dropbox_file->path;
        $url = $this->apiCall(($preview?"shares":"media")."/$this->rootPath/$dropbox_file", "POST", array('locale' => null, 'short_url'=> $preview ? $short : null));
        $expires = strtotime($url->expires);
        return $url->url;
    }

这会生成一个预览文件的链接,如https://db.tt/S3znA2kE,如果我打开此链接,则会显示https://www.dropbox.com/s/64h549xaofsm67p/readme.txt 我知道文件可以下载,如果我将通过?dl = 1,但不能理解如何

2 个答案:

答案 0 :(得分:2)

两种可能性:

  1. 你可以停止过去" true"在short参数中,因此获得一个很长的URL开头。然后,您可以直接使用dl=1参数。
  2. 如果由于某种原因,您需要获取一个简短的URL,则可以通过执行HTTP HEAD并查看返回的Location标头来扩展它。例如。 (使用curl):

    $ curl -I https://db.tt/S3znA2kE
    HTTP/1.1 302 FOUND
    Server: nginx
    Date: Thu, 07 Aug 2014 21:16:19 GMT
    Content-Type: text/html; charset=utf-8
    Connection: keep-alive
    location: https://www.dropbox.com/s/64h549xaofsm67p/readme.txt
    pragma: no-cache
    cache-control: no-cache
    

    获得完整展开的网址后,您可以对其进行修改以使用dl=1参数。

答案 1 :(得分:1)

然后您可能需要使用this示例抓取实际网址,或者我认为您可以获取内容并指向DOM并回到网址。