C# Sitecore:从url在媒体库中保存图像

C# Sitecore:从url在媒体库中保存图像,c#,sitecore,sitecore8,C#,Sitecore,Sitecore8,要在媒体库中下载并保存图像,我使用以下代码。我可以看到一个项目是在媒体库中创建的,但它没有媒体 使用(WebClient-WebClient=new-WebClient()) { 字节[]数据=webClient.DownloadData(“https://myurl/images?id="+12345); Stream memoryStream=新的memoryStream(数据); var options=new Sitecore.Resources.Media.MediaCreatorOp

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

使用(WebClient-WebClient=new-WebClient())
{
字节[]数据=webClient.DownloadData(“https://myurl/images?id="+12345);
Stream memoryStream=新的memoryStream(数据);
var options=new Sitecore.Resources.Media.MediaCreatorOptions
{
FileBased=false,
OverwriteExisting=true,
Versioned=true,
IncludeExtensionInItemName=true,
Destination=Factory.GetDatabase(“master”).GetItem(Settings.GetSetting(“ProfilePicturesFolderItemId”).Path.Path+“/”+“12345”,
Database=Factory.GetDatabase(“master”),
AlternateText=userProfileItem.Name
};
使用(新的SecurityDisabler())
{
var creator=new Sitecore.Resources.Media.MediaCreator();
CreateFromStream(memoryStream、v1ImageId、选项);
}
}

在介质文件夹中,我可以看到名为“12345”的项目,但没有介质

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

使用(WebClient-WebClient=new-WebClient())
{
字符串filename=“SOMEFILENAME”;
string extension=“.png”//或任何扩展名
字节[]数据=webClient.DownloadData(imageUrl);
Stream memoryStream=新的memoryStream(数据);
var options=new Sitecore.Resources.Media.MediaCreatorOptions
{
FileBased=false,
OverwriteExisting=true,
Versioned=true,
IncludeExtensionInItemName=true,
Destination=Factory.GetDatabase(“master”).GetItem(Settings.GetSetting(“ProfilePicturesFolderItemId”)).Path.Path+“/”+文件名,
Database=Factory.GetDatabase(“master”),
AlternateText=userProfileItem.Name
};
使用(新的SecurityDisabler())
{
var creator=new Sitecore.Resources.Media.MediaCreator();
CreateFromStream(memoryStream、文件名+扩展名、选项);
}
}

我尝试提供扩展时出错。此代码
creator.CreateFromStream(memoryStream,文件名+扩展名,选项)生成错误:
参数无效。如果我删除了扩展名,那么错误也就消失了。您的文件名和扩展名是什么?图像是.jpg,文件名是12345。我没有按原样使用你的代码,我相应地修改了它。我正在测试它,所以我的文件名是21345。我想问题可能是我的流中没有anthing<代码>流内存流=新内存流(数据)。您知道从url读取图像的代码是否正确吗?我测试了粘贴的代码。这对我有用。我可以确认它在媒体库中创建了一个名为
SOMEFILENAME
的项目,并且包含从web下载的正确图像。是的,你可能无法从你正在使用的位置下载图像,但是如果你不提供你正在使用的确切url,这里的任何人都无法帮助你。