最近将sitecore实例从6.1升级到6.6。有一个上传命令打开了自定义xaml对话框。这上面有一个上传按钮,可以打开另一个模态:
UploadPackageForm.Show(MyConstants.FolderPath, true);
在整个网站上测试某些功能点时,我在使用此上传程序时遇到错误,说上传的文件需要是一个zip文件。我猜测从6.1到6.6的某个地方,包装上传器检查了上传的文件类型。我一直在四处寻找sitecore附带的对话框,我可以使用它。这看起来很有希望:
我似乎无法从这一个获取文件路径,虽然我认为我可以在传递给OnOK事件的args上设置一个属性,我将在明天尝试。
Sitecore.Shell.Applications.Install.Dialogs.AddFilesDialog
我不确定如何展示这个:
Sitecore.Shell.Applications.Dialogs.Upload
另一种选择是尝试制作自定义对话框。任何想法和想法都表示赞赏。
答案 0 :(得分:1)
Sitecore应用中的网站访问者或Sitecore用户是否上传?无论如何,6.6中的UploadPackageForm验证该文件是有效的Sitecore包(始终是ZIP文件)。 6.1没有这样做。
在安装Sitecore应用程序的环境中,也不要使用AddFilesDialog。
我不确定上传的内容,但是如果它适用于渲染的网站,则应创建自己的内容。如果它适用于Sitecore应用,则有几种取决于您的需求。有FlashUpload(/ sitecore / shell / Applications / FlasUpload下有3种类型),媒体上传到/ sitecore / shell / Applications / Media / Upload ****。
答案 1 :(得分:1)
我查看了处理文件资源管理器的代码(不限制上传文件类型)并找到了这个。可能有用:
public static void UploadToDirectory(string directory)
{
Assert.ArgumentNotNull((object) directory, "directory");
Error.AssertString(directory, "directory", true);
UrlString urlString = new UrlString("/sitecore/shell/Applications/Dialogs/Upload/Upload.aspx");
urlString.Append("di", directory);
Context.ClientPage.ClientResponse.ShowModalDialog(urlString.ToString(), "files:uploaded");
}
此方法位于Sitecore.Shell.Framework.Files
Sitecore.Kernel