Sitecore:从网址将图像保存在媒体库中



要下载图像并将其保存在媒体库中,我使用以下代码。我可以看到在媒体库中创建了一个项目,但它没有媒体。

using (WebClient webClient = new WebClient())
{
    byte[] data = webClient.DownloadData("https://myurl/images?id="+12345);
    Stream memoryStream = new MemoryStream(data);
    var options = new Sitecore.Resources.Media.MediaCreatorOptions
    {
        FileBased = false,
        OverwriteExisting = true,
        Versioned = true,
        IncludeExtensionInItemName = true,
        Destination = Factory.GetDatabase("master").GetItem(Settings.GetSetting("ProfilePicturesFolderItemId")).Paths.Path + "/" + "12345",
        Database = Factory.GetDatabase("master"),
        AlternateText = userProfileItem.Name
    };

    using (new SecurityDisabler())
    {
        var creator = new Sitecore.Resources.Media.MediaCreator();
        creator.CreateFromStream(memoryStream, v1ImageId, options);
    }
}
在"媒体

"文件夹中,我可以看到一个名为"12345"的项目,但没有媒体。

据我所知,当您在选项中传递Destination时,它必须包含项目的新名称,并且它应该与方法调用中的第二个参数相同CreateFromStream只是没有扩展:

using (WebClient webClient = new WebClient())
{
    string filename = "SOMEFILENAME";
    string extension = ".png"; // or whatever is the extension
    byte[] data = webClient.DownloadData(imageUrl);
    Stream memoryStream = new MemoryStream(data);
    var options = new Sitecore.Resources.Media.MediaCreatorOptions
    {
        FileBased = false,
        OverwriteExisting = true,
        Versioned = true,
        IncludeExtensionInItemName = true,
        Destination = Factory.GetDatabase("master").GetItem(Settings.GetSetting("ProfilePicturesFolderItemId")).Paths.Path + "/" + filename,
        Database = Factory.GetDatabase("master"),
        AlternateText = userProfileItem.Name
    };

    using (new SecurityDisabler())
    {
        var creator = new Sitecore.Resources.Media.MediaCreator();
        creator.CreateFromStream(memoryStream, filename + extension, options);
    }
}

最新更新