2009-05-26 73 views
0

我有我的开发机器上使用aspx连接器进行文件上传(这是一个asp.net网站)的FCKEditor(2.6.4),但我无法确定了解如何让它在生产机器上工作。 Arrgh。已经花了4个小时,并没有得到。FCKEditor文件上传 - 不在生产服务器上工作 - “无效文件”

通过这似乎是一个权限问题悉数亮相,但是:

  • 我已经双重和三重检查后IUSR和ASPNET和网络服务(甚至是“每个人”,现在)有权限将文件写入作为上传目标的“userfiles”文件夹中。
  • 我已经按照法律条文设立fckconfig.js

症状:

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

从fckconfig.js相关代码:

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

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

代码\ 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

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

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