パスのフォルダー名の 1 つにスペースが含まれていると、IM はパスの -> メタデータにアクセスできません。したがって、パスが /CLIENT/FOLDER NAME の場合、メタデータ呼び出しは 401 を返します。次のようにパス パラメータをエンコードしています。
$path = str_replace('%2F', '/', rawurlencode($path));
スペースに %20 を追加します。ドロップボックスに移動して「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)) {
...
}