1

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

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

这为空格添加了 %20。如果我进入保管箱并将“文件夹名称”更改为“文件夹名称”,一切都会顺利进行。我应该用另一种方式对路径进行编码吗?

在我深入文件夹并将前面的文件夹路径作为查询字符串“路径”传递之前,这里有更多代码,所以我遇到问题的 url 是“/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)) {
       ...
   }
4

2 回答 2

0

尝试使用原始空间。当我使用 Dropbox API 时,我从来不需要对空格进行编码。如果您查看元数据返回。带空格的文件按原样写入,没有 urlencoding。

于 2015-01-13T19:53:14.847 回答
0

尝试类似的东西

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

这里

这是 php curl_escape

gsub 类似于这里

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

于 2015-01-14T19:21:41.647 回答