Sitecore - 在 zip 文件中上传两个名称相同但扩展名不同的文件

Sitecore - Upload two file with same name but different extension inside a zip file

我想上传 2 个名称相同但扩展名不同的文件,我想将它们放在一个 zip 文件中,然后使用 sitecore 将所有文件提取到 sitecore 媒体库中。
我正在使用 sitecore 7.2。知道怎么做吗?

您可以使用正常的 asp.net 文件上传将 zip 文件上传到网络服务器上的目录。

然后您可以使用 Sitecore ZipReader 解压 zip 文件并创建媒体项目:

 using (ZipReader zipReader = new ZipReader(str))
 {
                foreach (ZipEntry entry in zipReader.Entries)
                {
                    if (entry.IsDirectory)
                    {
                        continue;
                    }
                    MediaUploadResult mediaUploadResult = new MediaUploadResult();
                    list.Add(mediaUploadResult);
                    mediaUploadResult.Path = FileUtil.MakePath(this.Folder, entry.Name, '/');
                    mediaUploadResult.ValidMediaPath = MediaPathManager.ProposeValidMediaPath(mediaUploadResult.Path);
                    MediaCreatorOptions mediaCreatorOption = new MediaCreatorOptions()
                    {
                        Language = this.Language,
                        Versioned = this.Versioned,
                        KeepExisting = !this.Overwrite,
                        Destination = mediaUploadResult.ValidMediaPath,
                        FileBased = this.FileBased,
                        Database = this.Database
                    };
                    MediaCreatorOptions mediaCreatorOption1 = mediaCreatorOption;
                    mediaCreatorOption1.Build(GetMediaCreatorOptionsArgs.UploadContext);
                    Stream stream = entry.GetStream();
                    mediaUploadResult.Item = MediaManager.Creator.CreateFromStream(stream, mediaUploadResult.Path, mediaCreatorOption1);
                }
            }
    }

您可以使用 Upload Files (Advanced) 选项,然后在上传对话框中 select Unpack ZIP Archives

文件将被上传,存档的解压文件和生成的文件分别列为单独的项目:

您遇到的问题是 Sitecore 非常 "flexible" (ahem) 它允许作为项目扩展,因此它无法同时解决这两个问题这些项目,因为它们都有相同的项目名称。

您可以在配置中设置 Media.IncludeExtensionsInItemNames=true 或扩展 MediaRequestHandler 以对扩展进行额外检查:Handling Duplicate Media Paths in Sitecore.

this previous Whosebug question 中有关于此行为的更多信息。

注意:Unpack ZIP archives 似乎无法在 Sitecore 8 更新 4(可能全部)中运行。我会把它作为一个错误提出来支持。