tags:

views:

3167

answers:

2

I have FCKEditor (2.6.4) working on my development machine with the aspx connector for file upload (it's an asp.net website), but I cannot figure out how to get it working on the production machine. Arrgh. Have spent 4 hours on this and gotten nowhere.

By all appearances it seems to be a permissions issue, but:

  • I've double and triple-checked that IUSR and ASPNET and Network Service (and even "Everyone", for now) has permission to write files on the "userfiles" folder that is the target for the upload.
  • I've followed the letter of the law in setting up fckconfig.js

Symptoms:

  • Editor works fine. User can enter text, etc.
  • User can click the insert image button, which brings up the image chooser. Can insert an image that already exists on the server just fine.
  • Can go into the file-upload dialog and successfully create a new folder on the server via the fckeditor UI.
  • But whenever the user tries to upload a small and valid .png, .jpg, .gif, any image (which works OK on my localhost here), Firefox gives me an "Invalid File" message. (I've tried with numerous valid image files of varying sizes and formats. None work. The image does not get uploaded to the server.)

relevant code from fckconfig.js:

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

// Don't care about the following two lines. It just calculates the correct connector // extension to use for the default File Browser (Perl uses "cgi"). var _FileBrowserExtension = _FileBrowserLanguage == 'perl' ? 'cgi' : _FileBrowserLanguage ; var _QuickUploadExtension = _QuickUploadLanguage == 'perl' ? 'cgi' : _QuickUploadLanguage ; `

code from 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  A: 

I have switched to using the "ASP" connector, and it works perfectly. For some reason, the .aspx connector didn't work on my production site (but worked on the dev machine), but the ASP connector works fine.

Not quite an "answer", but an effective workaround.

A: 

I tried ASP, but obtained the error: "You have no permissions to create the folder"

It seems that the Config.ASP file only permits relative folder references. The folder exists and the ASPX was able to read from here, but not ASP.

Is this a show stopper with FCKEditor?

TriSys