FCKEditor文件上载 - 无法在生产服务器上运行 - “无效文件”

时间:2009-05-26 21:20:54

标签: c# fckeditor

我有FCKEditor(2.6.4)在我的开发机器上使用aspx连接器进行文件上传(这是一个asp.net网站),但我无法弄清楚如何让它在生产机器上运行。 Arrgh。已花了4个小时在这上面并且无处可去。

从各方面来看,这似乎是一个权限问题,但是:

  • 我已经对IUSR和ASPNET以及网络服务(以及现在的“Everyone”)进行了双倍和三重检查,有权在“userfiles”文件夹上写入文件,该文件夹是上传目标。
  • 我在设置fckconfig.js
  • 时遵循了法律条文

症状:

  • 编辑器工作正常。用户可以输入文字等
  • 用户可以点击插入图片按钮,调出图像选择器。可以插入服务器上已存在的图像。
  • 可以进入文件上传对话框,并通过fckeditor UI在服务器上成功创建新文件夹。
  • 但是每当用户尝试上传一个小而有效的.png,.jpg,.gif文件时,任何图片(在我的localhost上运行正常),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%" );

`

1 个答案:

答案 0 :(得分:1)

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

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