PHP DropboxClient访问带有路径空间的元数据

时间:2015-01-03 21:24:53

标签: php dropbox-php

当路径在其中一个文件夹名称中有空格时,IM无法访问路径的 - >元数据。因此,如果路径是/ CLIENT / FOLDER NAME,那么元数据调用将返回401.我正在编码路径参数,如下所示:

$path = str_replace('%2F', '/', rawurlencode($path));

为空格添加%20。如果我进入Dropbox并更改" FOLDER NAME"到" FOLDER-NAME"一切都很顺利。我应该采用另一种方式对路径进行编码吗?

前面有更多代码 我深入到文件夹并传递前面的文件夹路径作为查询字符串'路径' 所以我遇到问题的网址是" / my-hub /?path = COMM%20POLICIES"

   $clientpath = "/DACLIENTS/$username";//username is the current user
   $path = $clientpath;
   if(isset($_GET['path'])){
      $path .= '/'.rawurldecode($_GET['path']);
   }
   $path = rawurlencode($path);
   $path = str_replace('%2F', '/', $path);
   // List contents of directory
   if ($home = $client->metadata($path)) {
       ...
   }

2 个答案:

答案 0 :(得分:0)

尝试使用原始空间。当我使用Dropbox API时,我从来没有编过空格。如果你看一下元数据返回。带空格的文件完全按原样写入,没有urlencoding。

答案 1 :(得分:0)

尝试类似

的内容
gsub("%2F","/",curlEscape($path)) <-- But this is rails.

来自here

这是php curl_escape

gsub类似于here

preg_replace( "/^(\w[^\r\n]*)(?=\r?\n\w.*$)/m", "\\1  ", $text );

一种解决方案是编辑文件中的标题

问题来自发送文件头中的文件名格式/编码。修复是对标题中的文件名进行rawurldecode。

https://code.google.com/p/dropbox-php/issues/detail?id=13

PS - 路径名称存储为字节

https://code.google.com/p/dropbox-php/issues/detail?id=10