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

Sitecore-在zip文件中上载两个名称相同但扩展名不同的文件,sitecore,sitecore7,Sitecore,Sitecore7,我想上传两个同名但扩展名不同的文件,我想将它们放在一个zip文件中,然后使用sitecore将所有文件解压缩到sitecore媒体库中。 我正在使用sitecore 7.2。你知道怎么做吗?你可以使用普通的asp.net文件上传将zip文件上传到web服务器上的一个目录 然后,您可以使用SitecoreZipReader解压压缩文件并创建媒体项: 使用(ZipReader-ZipReader=new-ZipReader(str)) { foreach(zipReader.Entries中的Zip

我想上传两个同名但扩展名不同的文件,我想将它们放在一个zip文件中,然后使用sitecore将所有文件解压缩到sitecore媒体库中。

我正在使用sitecore 7.2。你知道怎么做吗?

你可以使用普通的asp.net文件上传将zip文件上传到web服务器上的一个目录

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

使用(ZipReader-ZipReader=new-ZipReader(str))
{
foreach(zipReader.Entries中的ZipEntry条目)
{
if(条目.IsDirectory)
{
继续;
}
MediaUploadResult MediaUploadResult=新的MediaUploadResult();
添加(mediaUploadResult);
mediaUploadResult.Path=FileUtil.MakePath(this.Folder,entry.Name,“/”);
mediaUploadResult.ValidMediaPath=MediaPathManager.ProposeValidMediaPath(mediaUploadResult.Path);
MediaCreatorOptions mediaCreatorOption=新的MediaCreatorOptions()
{
语言=这个。语言,
版本化=此。版本化,
KeepExisting=!this.Overwrite,
目的地=mediaUploadResult.ValidMediaPath,
FileBased=this.FileBased,
Database=this.Database
};
MediaCreatorOptions mediaCreatorOption 1=mediaCreatorOption;
mediaCreatorOption1.Build(GetMediaCreatorOptionsArgs.UploadContext);
Stream=entry.GetStream();
mediaUploadResult.Item=MediaManager.Creator.CreateFromStream(流,mediaUploadResult.Path,mediaCreatorOption1);
}
}
}

您可以使用
上载文件(高级)
选项,然后在上载对话框中选择
解包压缩档案

文件将被上传,归档的解包文件和生成的文件将作为单独的项目单独列出:

上面提到的问题是,Sitecore非常“灵活”(ahem),它允许项目扩展,因此无法解决这两个项目,因为它们都具有相同的项目名称

您可以在配置中设置
Media.IncludeExtensionsInItemNames=true
,或扩展
MediaRequestHandler
以对扩展进行其他检查:

在中有关于此行为的更多信息


注意:
Unpack ZIP归档文件
在Sitecore 8,Update 4(可能全部)中似乎不起作用。我会将其作为一个bug与支持一起提出。

是的,但我确实希望从sitecore后端获得一个解决方案。但是谢谢你到底需要什么帮助?我已经找到了答案。看起来这更像是配置问题。我已经解决了这个MediaUploadResult的属性是内部/只读的问题。上面的代码无法编译