当路径在其中一个文件夹名称中有空格时,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)) {
...
}
答案 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 - 路径名称存储为字节