如何通过编程中的Sitecore中的特定文件夹上传多个图像



我试图将文件系统中的大量图像上传到sitecore,内部的媒体库中的特定文件夹。我正在使用Sitecore 8.1.3版本。

我尝试使用MediaCreator.CreateFromFile(),MediaCreator.CreateItem(),MediaCreator.CreateFromStream()函数。我面临的问题是在上传图像时,我希望在媒体库中的" xyz"文件夹中所有图像,而是为每个单独的图像一次又一次地创建" xyz"文件夹。

因此,对于200张图像来说,创建了200个文件夹,在每个文件夹中,一个图像正在上传。

似乎所有三个函数都会创建整个项目路径,而不管它是否已经存在于媒体库中。

这是我的使用方式

MediaCreator creator = new MediaCreator();
fileLocation = C:Imagestemp.png
var options = new MediaCreatorOptions();
options.Destination = "/sitecore/media library/XYZ/temp";
Item newItem = creator.CreateFromFile(fileLocation, options);

它重复具有不同图像名称的多个图像。

无法评论。但是,我想在Stackexchange上的Richard Seal'answer几乎是您想要的。:https://sitecore.stackexchange.com/questions/15433/how-to-copy-multiple-items-to-a-a-new-location

您有两种方法 - 如果您可以连接Sitecore Rock,则可以选择多选择项目并在Visual Studio和Rename中移动它们。

第二个选项是使用Sitecore PowerShell扩展名(SPE)来脚本。此示例将为您提供一个很好的起点:

$rootOfitemsToMove = Get-Item “/sitecore/content/Location A/subfolder 4”;
$destinationItemPath = “/sitecore/content/Location B/subfolder 4”;
$templateNameToMatch = “My Template”;
Write-Host “Moving items from: ” $rootOfitemsToMove.Paths.FullPath ” to: ” $destinationItem.Paths.FullPath ” …”;
Get-ChildItem | Where-Object { $_.TemplateName -match $templateNameToMatch } | ForEach-Object {
    $name = $_.Name
    if(![string]::IsNullOrEmpty($name))
    {
        $newName = "$($name)0"  # Add some logic here to rename the folder
        $newPath = "$($destinationItemPath)/$($newName)"
        Move-Item -Path $_.ItemPath -Destination $newPath;
        Write-Host “Item moved to: $($newPath)“;
    }
    else
    {
        Write-Host “Couldn’t move Item: ” $name;
    }
}
Write-Host “Moving items complete.”;

您需要确定文件夹如何重命名的逻辑。移动父文件夹也应将子项目移动。

最新更新