2017-03-27 48 views
0

PHPアプリケーションでsharePoointを使用するためにphpSPOライブラリを使用しています。例えば https://github.com/vgrem/phpSPOSharePointのphpSPOライブラリでフォルダを操作する

、私は特定のフォルダ上の例で

try { 

    $authCtx = new AuthenticationContext($Settings['Url']); 
    $authCtx->acquireTokenForUser($Settings['UserName'],$Settings['Password']); 
    // conecction successfull 

    $folderUrl = "/sites/mySite/Tfts/eiic"; 

    $url = $Settings['Url'] . "/_api/web/getFolderByServerRelativeUrl('{$folderUrl}')/Files"; 
    $request = new RequestOptions($url); 
    $ctx = new ClientContext($url,$authCtx); 
    $data = $ctx->executeQueryDirect($request); 

    // HOW to Convert $data to FolderItem or Folder class ?? 

} 
catch (Exception $e) { 
    echo 'Error: ', $e->getMessage(), "\n"; 
} 

のファイルを検索し、$データは、フォルダのファイルとJSONですが、どのように私は、このJSONファイルに変換することができますかそのプロパティを操作するためのFileCollection?

別の質問、特定のフォルダにファイルをアップロードする方法はありますか?

ありがとうございます。

答えて

0

SharePointリソースを扱うときにFileFolderなどの対象エンティティを使用することをお勧めします。

その場合、特定のフォルダ配下のファイルを取得するための例では、に変換することができます

$files = $ctx->getWeb()->getFolderByServerRelativeUrl($parentFolderUrl)->getFiles(); 
$ctx->load($files); 
$ctx->executeQuery(); 
//print files info 
foreach ($files->getData() as $file) { 
    print "File name: '{$file->getProperty("ServerRelativeUrl")}'\r\n"; 
} 

のは、あなたのサイトは、以下の構造を有しているとしましょう:

Documents (library) 
| 
--- Archive (folder) 
     | 
     --- 2001 (folder)  

その後、下記ファイルを2001サブフォルダにアップロードする例を示します。

$targetFolderUrl = "/Documents/Archive/2007"; 
$localPath = "./User Guide.docx"; 

$fileName = basename($localPath); 
$fileCreationInformation = new FileCreationInformation(); 
$fileCreationInformation->Content = file_get_contents($localPath); 
$fileCreationInformation->Url = $fileName; 

$uploadFile = $ctx->getWeb()->getFolderByServerRelativeUrl($targetFolderUrl)->getFiles()->add($fileCreationInformation); 
$ctx->executeQuery(); 
関連する問題