Web 如何将图像从本地文件夹上载到Sitecore

Web 如何将图像从本地文件夹上载到Sitecore,web,sitecore,sitecore6,Web,Sitecore,Sitecore6,`webClient.UploadFile(“,@”E:\fileimage\Item.png”); 我试图通过发送我的sitecore地址和本地图像路径,使用webclient.uploadfile()方法将图像上载到sitecore。但我无法上载。我必须在没有任何API和sitecore实例的情况下执行此操作。上载过程将是最简单的。但是,文件上传后,您需要以编程方式创建媒体项。您可以从文件系统中的实际文件或内存流执行此操作 该过程涉及使用MediaCreator对象并使用其CreateFro

`webClient.UploadFile(“,@”E:\fileimage\Item.png”);
我试图通过发送我的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,则可以执行以下操作:

  • 编写将图像上载到此文件夹的代码:[root]/upload/
  • 您可能需要创建表示图像如何存储在Sitecore中的文件夹结构,例如:上载到[root]/upload/Import/的图像将存储在/Sitecore/media library/Import
  • Sitecore将自动将这些图像上载到媒体库中

  • 希望这有助于如果您想使用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();
            }
        }