0

我有 FCKEditor (2.6.4) 在我的开发机器上使用 aspx 连接器进行文件上传(它是一个 asp.net 网站),但我不知道如何让它在生产机器上工作。啊。在这上面花了 4 个小时,却一无所获。

从表面上看,这似乎是一个权限问题,但是:

  • 我已经双重和三重检查了IUSR和ASPNET和网络服务(现在甚至是“所有人”)有权在作为上传目标的“userfiles”文件夹中写入文件。
  • 我在设置 fckconfig.js 时遵循了法律条文

症状:

  • 编辑器工作正常。用户可以输入文字等。
  • 用户可以单击插入图像按钮,这会调出图像选择器。可以插入服务器上已经存在的图像就好了。
  • 可以进入文件上传对话框并通过 fckeditor UI 在服务器上成功创建一个新文件夹。
  • 但是,每当用户尝试上传一个小的且有效的 .png、.jpg、.gif、任何图像(在我的本地主机上可以正常工作)时,Firefox 都会给我一个“无效文件”消息。(我已经尝试了许多不同大小和格式的有效图像文件。没有工作。图像没有上传到服务器。)

fckconfig.js 中的相关代码:

` var _FileBrowserLanguage = 'aspx' ;
var _QuickUploadLanguage = 'aspx' ;

// 不要关心以下两行。它只是计算正确的连接器 // 用于默认文件浏览器的扩展名(Perl 使用“cgi”)。var _FileBrowserExtension = _FileBrowserLanguage == 'perl' ?'cgi' : _FileBrowserLanguage ; var _QuickUploadExtension = _QuickUploadLanguage == 'perl' ?'cgi' : _QuickUploadLanguage ; `

来自 fckeditor\editor\filemanager\connectors\aspx\config.ascx 的代码:

`UserFilesPath = "~/userfiles/";

    // The connector tries to resolve the above UserFilesPath automatically.
    // Use the following setting it you prefer to explicitely specify the
    // absolute path. Examples: 'C:\\MySite\\userfiles\\' or '/root/mysite/userfiles/'.
    // Attention: The above 'UserFilesPath' URL must point to the same directory.

    string ap = HttpContext.Current.Server.MapPath("~/userfiles/");
    UserFilesAbsolutePath = ap;


    //UserFilesAbsolutePath = "C:\\inetpub\\wwwroot\\hot-bigoven\\userfiles\\";
    //UserFilesAbsolutePath = "C:\\inetpub\\wwwroot\\bigovenwebapp\\bigovenwebapp\\userfiles\\";


    // Due to security issues with Apache modules, it is recommended to leave the
    // following setting enabled.

    //ForceSingleExtension = true;

    // Allowed Resource Types
    AllowedTypes = new string[] { "File", "Image", "Flash", "Media" };

    // For security, HTML is allowed in the first Kb of data for files having the
    // following extensions only.
    HtmlExtensions = new string[] { "html", "htm", "xml", "xsd", "txt", "js" };

    TypeConfig[ "File" ].AllowedExtensions          = new string[] { "7z", "aiff", "asf", "avi", "bmp", "csv", "doc", "fla", "flv", "gif", "gz", "gzip", "jpeg", "jpg", "mid", "mov", "mp3", "mp4", "mpc", "mpeg", "mpg", "ods", "odt", "pdf", "png", "ppt", "pxd", "qt", "ram", "rar", "rm", "rmi", "rmvb", "rtf", "sdc", "sitd", "swf", "sxc", "sxw", "tar", "tgz", "tif", "tiff", "txt", "vsd", "wav", "wma", "wmv", "xls", "xml", "zip" };
    TypeConfig[ "File" ].DeniedExtensions           = new string[] { };
    TypeConfig[ "File" ].FilesPath                  = "%UserFilesPath%file/";
    TypeConfig[ "File" ].FilesAbsolutePath          = ( UserFilesAbsolutePath == "" ? "" : "%UserFilesAbsolutePath%file/" );
    TypeConfig[ "File" ].QuickUploadPath            = "%UserFilesPath%";
    TypeConfig[ "File" ].QuickUploadAbsolutePath    = ( UserFilesAbsolutePath == "" ? "" : "%UserFilesAbsolutePath%" );

    TypeConfig[ "Image" ].AllowedExtensions         = new string[] { "bmp", "gif", "jpeg", "jpg", "png" };
    TypeConfig[ "Image" ].DeniedExtensions          = new string[] { };
    TypeConfig[ "Image" ].FilesPath                 = "%UserFilesPath%image/";
    TypeConfig[ "Image" ].FilesAbsolutePath         = ( UserFilesAbsolutePath == "" ? "" : "%UserFilesAbsolutePath%image/" );
    TypeConfig[ "Image" ].QuickUploadPath           = "%UserFilesPath%";
    TypeConfig[ "Image" ].QuickUploadAbsolutePath   = ( UserFilesAbsolutePath == "" ? "" : "%UserFilesAbsolutePath%" );

    TypeConfig[ "Flash" ].AllowedExtensions         = new string[] { "swf", "flv" };
    TypeConfig[ "Flash" ].DeniedExtensions          = new string[] { };
    TypeConfig[ "Flash" ].FilesPath                 = "%UserFilesPath%flash/";
    TypeConfig[ "Flash" ].FilesAbsolutePath         = ( UserFilesAbsolutePath == "" ? "" : "%UserFilesAbsolutePath%flash/" );
    TypeConfig[ "Flash" ].QuickUploadPath           = "%UserFilesPath%";
    TypeConfig[ "Flash" ].QuickUploadAbsolutePath   = ( UserFilesAbsolutePath == "" ? "" : "%UserFilesAbsolutePath%" );

    TypeConfig[ "Media" ].AllowedExtensions         = new string[] { "aiff", "asf", "avi", "bmp", "fla", "flv", "gif", "jpeg", "jpg", "mid", "mov", "mp3", "mp4", "mpc", "mpeg", "mpg", "png", "qt", "ram", "rm", "rmi", "rmvb", "swf", "tif", "tiff", "wav", "wma", "wmv" };
    TypeConfig[ "Media" ].DeniedExtensions          = new string[] { };
    TypeConfig[ "Media" ].FilesPath                 = "%UserFilesPath%media/";
    TypeConfig[ "Media" ].FilesAbsolutePath         = ( UserFilesAbsolutePath == "" ? "" : "%UserFilesAbsolutePath%media/" );
    TypeConfig[ "Media" ].QuickUploadPath           = "%UserFilesPath%";
    TypeConfig[ "Media" ].QuickUploadAbsolutePath   = ( UserFilesAbsolutePath == "" ? "" : "%UserFilesAbsolutePath%" );

`

4

1 回答 1

1

我已经切换到使用“ASP”连接器,它工作得很好。出于某种原因,.aspx 连接器在我的生产站点上不起作用(但在开发机器上工作),但 ASP 连接器工作正常。

不是一个“答案”,而是一个有效的解决方法。

于 2009-05-27T02:24:01.400 回答