Dropbox PHP DropboxClient доступ к метаданным с пробелом в пути

У IM возникли проблемы с доступом к метаданным пути ->, когда путь имеет пробел в одном из имен папок. Поэтому, если путь — / CLIENT / FOLDER NAME, вызов метаданных возвращает 401. Я кодирую параметр пути следующим образом:

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

который добавляет% 20 для пробелов. Если я захожу в dropbox и меняю «FOLDER NAME» на «FOLDER-NAME», все проходит просто отлично. Есть ли другой способ, которым я должен кодировать путь?

Вот еще код, предшествующий
Я углубляюсь в папки и передаю предыдущий путь к папке в виде строки запроса «путь»
поэтому 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)) {
...
}

1

Решение

Попробуйте использовать сырое пространство. Мне никогда не приходилось кодировать пробелы, когда я работал с API Dropbox. Если вы посмотрите на возвращение метаданных. Файлы с пробелами пишутся в точности так, как они есть, и нет кодировки urlencoding.

0

Другие решения

Попробуйте что-то вроде

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

от Вот

Вот php curl_escape

gsub похож на Вот

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

Одним из решений было редактировать заголовки в файлах

Проблема возникает из-за формата / кодировки имени файла в заголовке отправляемого файла. Исправление заключается в необработанном кодировании имени файла в заголовке.

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

PS — пути хранятся в байтах

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

0

По вопросам рекламы [email protected]