2017-03-27 96 views
0

我正在與phpSPO庫一起使用PHP應用程序中的sharePooint。 https://github.com/vgrem/phpSPO使用SharePoint的文件夾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(); 
相關問題