Fckeditor XML Request error:internal server error (500) 解决方法小结(fckeditor js方法)硬核推荐

随心笔谈1年前 (2023)发布 admin
149 0


原来一直能用的ecshop后台信息发布里面的fckeditor上传功能,换了个机器后不能用了。以为是文件损坏,上传一边不行。

什么xml错误,还弹出一个大的JavaScript alert警告框,内容就是服务器端错误的500内容

网上搜,又说是配置问题,主题问题,想想都不应该,直接请求

复制代码 代码如下:

filemanager/connectors/php/connector.php

出了服务器的500错误,html文件能访问,txt也行。

后来从根目录开始查,发现到fckeditor目录里面的php文件开始不能访问。

改了fckeditor目录的属性为755,问题解决。

问题二

网上很多人提到,后来发布的FCKeditor2.3以后的版本,要设置fckeditoreditorfilemanagerconnectorsaspx目录下的connector.aspx,和upload.aspx里的加入theme=””,但经本人测试,这样还是不行,仔细看提示的错误,原来根本没有那么复杂,其实就是你的上传文件夹设置不对,首先要确认你的文件夹有写入的权限,然后再web.config里面要注意写入路径的设置,~/表示当前站点的根目录,/表现的文件所在电脑的根目录,建议根据你的文件结构,选择第一种设置。

原来是主题惹的祸:

因为ASP.NET2.0新增了Theme功能,所以如果在你的工程中你对Web.config使用到了styleSheetTheme或theme的话那就要再多修改一下。

还是到FCKeditor所在的目录,分别打开editorfilemanageruploadaspxupload.aspx和editorfilemanagerbrowserdefaultconnectorsaspxconnector.aspx两个aspx文件,在page标签中添加Theme=””或StyleSheetTheme=””看你在工程使用的是什么就修改什么。修改后如下:

复制代码 代码如下:

<%@ Page language=”c#” Inherits=”FredCK.FCKeditorV2.Uploader” AutoEventWireup=”false” Theme=”” %>

复制代码 代码如下:

<%@ Page language=”c#” Inherits=”FredCK.FCKeditorV2.Uploader” AutoEventWireup=”false” StylesheetTheme=”” %>

这样就解决了500的内部错误。

国外网站

After Download You Change This Lines In FileWorkerBase.cs

复制代码 代码如下:

protected string UserFilesDirectory

{

get

{

if ( sUserFilesDirectory==null )

{

// Get the local (server) directory path translation. this.UserFilesPath

sUserFilesDirectory=Server.MapPath(string.Format(“{0}{1}”,”~”,”/UserFiles/”));

}

return sUserFilesDirectory ;

}

}

Now Buid Project And Change The Refrence To FredCK.FCKeditorV2.dll (Refrence Again)

复制代码 代码如下:

After Building This Changes And Adding Project Go To fckconfig.js and Change like This Lines

var _FileBrowserLanguage=’aspx’ ; // asp | aspx | cfm | lasso | perl | php | py

var _QuickUploadLanguage=’aspx’ ; // asp | aspx | cfm | lasso | php

问题四:

最近编写一个文章管理系统,参考了网络上的一些经验。感觉重新开始学习网页编程,差距真是太大了。想2000年前后,曾经学习过html、perl、php、asp、JS、VBS,后来还学习过jsp等,数据库用过access、mssql、mysql,后来学过oracle等。如今再拾起来,总是有些似曾相识,但毕竟不是一回事了。

  现在开始学习aspx,发现如果想学好一种语言,说起来容易,其实想真正掌握,也绝非易事。如果没有扎实的基础,总会感觉难以得心应手。

  文章管理系统中用到了fckeditor上传文件,在本机编译运行还是好好的,可是到了win2003服务器上就不能正常运行了。提示FCKeditor : XML Request error:internal server error (500) 。因为设置成了独立的域控制器,找了半天的资料,按所有的要求做了,足足有四、五天,还是不行。后来没有办法只好安装成独立服务器,一试行了,也可能当时没有弄清。接着按单位的要求加入域,第二天再一试,又不行了,真是无可奈何。

  实在没有办法了,只好从头找起。把其中的test.html复制回去,测试结果原来是引用的FredCK.FCKeditorV2.dll出了问题,真是没有想到。提示Util.CreateDirectory()出现错误。找到FredCK.FCKeditorV2.dll的源代码中的Util.cs,发现其中有一段为:

// The “_mkdir” function is used by the “CreateDirectory” method.

[DllImport(“msvcrt.dll”, SetLastError=true)]

private static extern int _mkdir(string path) ;

由此想到可能是系统的这个msvcrt.dll不一致造成程序调用出错,查看后发现版本确实不一样,服务器是win2003 sp1的,究竟是不是加入域后访问规则的改变,还没有找到是什么原因。

  仔细阅读了源代码,把其中涉及到msvcrt.dll的去除不用,替换成Directory.CreateDirectory(),编译后把FredCK.FCKeditorV2.dll复制到文章管理系统的bin目录,运行正常,win2003 sp1中也正常。

  源代码中也说明,如果直接使用System.IO.Directory.CreateDirectory()会出现异常提示,不过它当时是使用vs2003开发的,而vs2005中没有出现异常提示,可以正常使用。

  由于fckeditor涉及的语言较多,只能先这样修改,凑乎着用吧。

  修改后的Util.cs参考源代码:

复制代码 代码如下:

using System ;

using System.Runtime.InteropServices ;

using System.IO ;

using System.Collections ;

namespace FredCK.FCKeditorV2

{

public sealed class Util

{

private Util()

{}

public static DirectoryInfo CreateDirectory( string path )

{

Directory.CreateDirectory(path);

return new DirectoryInfo(path); }

}

}

您可能感兴趣的文章:asp.net 修饰符介绍(关于public、private、protected、internal)Mysql错误Cannot find or open table x/x from the internal问题解决方法C#中的Internal关键字小结

© 版权声明

相关文章