Web 如何将图像从本地文件夹上载到Sitecore
`webClient.UploadFile(“,@”E:\fileimage\Item.png”);Web 如何将图像从本地文件夹上载到Sitecore,web,sitecore,sitecore6,Web,Sitecore,Sitecore6,`webClient.UploadFile(“,@”E:\fileimage\Item.png”); 我试图通过发送我的sitecore地址和本地图像路径,使用webclient.uploadfile()方法将图像上载到sitecore。但我无法上载。我必须在没有任何API和sitecore实例的情况下执行此操作。上载过程将是最简单的。但是,文件上传后,您需要以编程方式创建媒体项。您可以从文件系统中的实际文件或内存流执行此操作 该过程涉及使用MediaCreator对象并使用其CreateFro
我试图通过发送我的sitecore地址和本地图像路径,使用webclient.uploadfile()方法将图像上载到sitecore。但我无法上载。我必须在没有任何API和sitecore实例的情况下执行此操作。上载过程将是最简单的。但是,文件上传后,您需要以编程方式创建媒体项。您可以从文件系统中的实际文件或内存流执行此操作 该过程涉及使用
MediaCreator
对象并使用其CreateFromFile
方法
这篇博文概述了整个过程:
如果您只是想优化开发人员的工作流程,您可以使用远程处理API(如本节所述)如果您的客户将图像上载到网站上,您需要在主数据库中创建项目。(需要在主数据库上访问和写入)取决于您的安全性,您可能不会考虑用自定义代码来构建它。
但是,使用Sitecore webforms for Marketiers模块时,需要即时上传文件。使用WFFM webservices创建带有上载字段的表单。选项:您可以使用项目Web API。不需要引用任何Sitecore dll。您只需要访问主机并能够启用ItemWebAPI 参考资料: 使用它上载文件: 启用项目Web Api:
我想这正是您所需要的,但正如Jay S所提到的,如果您在问题中提供更多细节,将有助于找到适合您具体情况的最佳选项。如果您不想使用Sitecore API,则可以执行以下操作:
希望这有助于如果您想使用web服务方式,您可以使用以下几种方式:
a) Sitecore Rocks Web服务(如果允许您安装该服务或该服务已可用)。
b) Sitecore Razl服务(需要许可证的是第三方)。
c) (这需要在Sitecore服务器上安装Sitecore PowerShell扩展)。
d) 您还可以使用Sitecore服务,您可以在Sitecore\shell\WebService\Service.asmx下找到它(但这是新SitecoreItemWebAPI的遗产)
e) (这也需要SitecoreItemWebApi 1.2作为先决条件)。
但最后,除了选项d,您需要安装一些或其他东西,以便使用HTTP上载映像,您还应该知道使用上述任何方法的有效凭据。我没有使用Sitecore名称空间和媒体项。我必须通过xml来完成,我假设您的意思是希望将数据直接输入数据库。我不知道怎么做,我也不建议尝试。你可能是对的,但我必须这样做。您能否帮助我如何使用WebClient?我如何访问Sitecore.Resources.Media.MediaCreator选项@马丁·戴维斯回答中提到的博客解释了这一点
var options=new Sitecore.Resources.Media.MediaCreatorOptions()代码>Srinu,您的另一个注释包含一些限制。我建议在您的问题中添加这些限制,以确保您得到更好的答案,从而在您的特定情况下对您有所帮助。我不知道您在下面陈述的这些限制:“我没有使用Sitecore名称空间和媒体项。我必须通过Xml来实现这一点”以及“如何使用WebClient”。这些是对您可用选项的限制。@Srinu请注意匿名您在此处发布的内容。我现在知道你的客户是谁,并且刚刚能够猜到登录页面的位置。至少“管理员”已更改;)我想通过WebClient Call将图像上载到Sitecore如何访问“Sitecore.Resources.Media.MediaCreatorOptions”类Hi Srinu,这是一种可以在Sitecore.Kernel.dll文件中找到的类型,正如martin上面所说,您可以使用brian的帖子创建媒体项。请问MediaItem是什么意思,但在sitecore中似乎缺少基本术语,在sitecore中,我们将图像/pdf/文档存储为MediaItem。它们也是Sitecore项,但可以将blob存储为值。如果你对这个基本问题没有把握,我不知道你是如何解决这个问题的。。
private void CreateImageIteminSitecore()
{
filePath = @"C:\Sitecore\Website\ImageTemp\Pic.jpg;
using (new SecurityDisabler())
{
Database masterDb = Sitecore.Configuration.Factory.GetDatabase("master");
Sitecore.Resources.Media.MediaCreatorOptions options = new Sitecore.Resources.Media.MediaCreatorOptions();
options.FileBased = true;
options.AlternateText = Path.GetFileNameWithoutExtension(filePath);
options.Destination = "/sitecore/media library/Downloads/";
options.Database = masterDb;
options.Versioned = false; // Do not make a versioned template
options.KeepExisting = false;
Sitecore.Data.Items.MediaItem mediaitemImage = new Sitecore.Resources.Media.MediaCreator().CreateFromFile(filePath, options);
Item ImageItem = masterDb.GetItem(mediaitemImage.ID.ToString());
ImageItem.Editing.BeginEdit();
ImageItem.Name = Path.GetFileNameWithoutExtension(filePath);
ImageItem.Editing.EndEdit();
}
}