我试图将文件系统中的大量图像上传到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.”;
您需要确定文件夹如何重命名的逻辑。移动父文件夹也应将子项目移动。