gpt4 book ai didi

php - 使用 SharePoint phpSPO 库处理文件夹

转载 作者:行者123 更新时间:2023-12-04 03:13:29 28 4
gpt4 key购买 nike

我正在使用 phpSPO 库在 PHP 应用程序中使用 sharePooint。 https://github.com/vgrem/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";
}

在上面的示例中,$data 是一个包含文件夹文件的 JSON,但是,如何将此 JSON 转换为 File 或 FileCollection 以使用其属性?

另一个问题,如何将文件上传到特定文件夹??

非常感谢!

最佳答案

我建议定位实体,例如 FileFolder在处理 SharePoint 资源时。

在这种情况下,获取特定文件夹下的文件的示例可以转换为:

$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();

关于php - 使用 SharePoint phpSPO 库处理文件夹,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43047944/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com