代码之家  ›  专栏  ›  技术社区  ›  Markus

如何在CKFInder中通过代码配置启用HTML上传?

  •  0
  • Markus  · 技术社区  · 7 年前

    这在默认情况下被CKFinder拒绝,因此我想用两个StringMatches“*.xml”和“*.template”扩展ResourceTypeBulder的SetAllowedHtmlExtensionMatchers。以下是SetupConnector的代码

            OwinConnectorFactory connectorFactory = new OwinConnectorFactory();
            ConnectorBuilder connectorBuilder = new ConnectorBuilder();
            string l_licenseName = "DUMMY";
            string l_licenseKey = "DUMMY";
            connectorBuilder.SetLicense(l_licenseName, l_licenseKey); 
            connectorBuilder
                .SetAuthenticator(new CKFinderAuthenticator())
                .SetRequestConfiguration(
                    (request, config) =>
                    {
                        config.SetOverwriteOnUpload(true);
                        config.SetThumbnailSizes(new SizeAndQuality(100, 100, new ImageQuality(80))); 
                        config.AddProxyBackend("default", new LocalStorage(@""));
                        config.AddResourceType("MySite", resourceBuilder => resourceBuilder.SetBackend("default", ""));
                        config.AddAclRule(new AclRule(
                                   new StringMatcher("*"),
                                   new StringMatcher("*"),
                                   new StringMatcher("*"),
                                   new Dictionary<Permission, PermissionType> { { Permission.All, PermissionType.Allow } }));
                        var defaultBackend = config.GetBackend("default");
                        var keyValueStoreProvider = new FileSystemKeyValueStoreProvider(defaultBackend);
                        config.SetKeyValueStoreProvider(keyValueStoreProvider);
                        config.SetKeyValueStoreProvider(new EntityFrameworkKeyValueStoreProvider("MyConnection")));
                    });
                    app.UseConnector(connectorBuilder.Build(connectorFactory));
    

    我必须扩展resourceBuilder以使用附加值,但我不知道如何扩展。

    config.AddResourceType("MySite", resourceBuilder => {resourceBuilder.SetBackend("default", ""); resourceBuilder.SetAllowedHtmlExtensionMatchers ......;});
    

    确实编译了,但显然是错误的,因为文件无法上传。 这可能是一个初学者的问题,但我被卡住了。我可以找到大量的例子来完成这里所示的工作,但我无法获得正确的关键字来在表达式中找到多个“参数”。 有人能指出我做错了什么吗?

    1 回复  |  直到 7 年前
        1
  •  0
  •   j.swiderski    7 年前

    我相信您正在寻找的代码是:

    var allowedHtmlExtensions = new[] {
        new StringMatcher("template"),
        new StringMatcher("xml")
    };
    
    config.AddResourceType("Files", resourceBuilder => {
        resourceBuilder.SetBackend("default", "files");
        resourceBuilder.SetAllowedExtensions(new string[] { "template", "xml", "7z","aiff","asf","avi","bmp","csv","doc","docx","fla","flv","gif","gz","gzip","jpeg","jpg","mid","mov","mp3","mp4","mpc","mpeg","mpg","ods","odt","pdf","png","ppt","pptx","pxd","qt","ram","rar","rm","rmi","rmvb","rtf","sdc","sitd","swf","sxc","sxw","tar","tgz","tif","tiff","txt","vsd","wav","wma","wmv","xls","xlsx","zip" });
    resourceBuilder.SetAllowedHtmlExtensionMatchers(allowedHtmlExtensions);
    resourceBuilder.SetLazyLoaded(true);                            
    });
    

    templates xml 扩展到 allowedExtensions 背景

    AllowedExtensions 可以上传任何不安全的文件。