미디어 라이브러리에 이미지를 다운로드하고 저장하려면 다음 코드를 사용하고 있습니다. 미디어 라이브러리에 항목이 생성되었지만 미디어가 없습니다.
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
in 옵션 을 전달할 때 항목의 새 이름을 포함해야하며 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);
}
}
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다