eWebEditor在后台上传文件提示d_file.document.myform.uploadfile为空或不是对象eWebEditor在后台上传文件提示d_file.document.myform.uploadfile为空或不是对象 

eWebEditor在后台上传文件提示d_file.document.myform.uploadfile为空或不是对象 

网上的都不能解决问题,看到有个帖子要直接访问下

../asp/upload.asp?style=coolblue&type=image

结果访问不了,原来iis里的Web服务扩展没启用Active Server Pages

其它解决方法:

原因:这个主要是有些杀毒软件会把上传组建当成病毒删除掉。
服务器里的杀毒软件屏蔽了上传文件的语句导致的,在其它上传相关的文件里把
Set Ads = Server.CreateObject("Adodb.Stream")修改为:
Set Ads = Server.CreateObject("Adodb." & "Stream")就OK了。


打开服务器上的"Internet 信息服务(IIS)管理器",“默认网站”下找到“neiwang”,然后在其上点右键,选择"主目录"选项卡,然后单击"配置(G)",然后点“选项”,勾上"启用父路径(P)"的复选框,确定。

问题描述:
EWEBEDITOR在线编辑器,在部分服务器上使用文件上传功能时提示"d_file.myform.uploadfile 为空或不是对象"
问题原因:
经 BAIDU反复搜索和试验,认为由于服务器安装了反病毒或反木马工具,对ASP程序中的 server.createobject("abodb.stream")语句进行了屏蔽.由于这个语句无法直接执行,因此导致出现上述问题.(主要是屏 蔽了主目录下的Upload.asp,另外include/upload_class.asp中也有几处.upload.asp中的一处最为重要)。
解决办法:
由于杀病毒软件只是对代码进行字符串匹配,并不直接阻止adodb.stream对象的创建,因此考虑可以通过简单地改变字符串结构来绕过检查.
server.createobject("adodb." & "stream")
网上很多资料都提供了这个修改方法,不过经过测试,此法无效.估计是新版本的杀病毒软件对该语句进行了模糊匹配或正则表达式匹配,因此无法通过简单的截断字符串再连接起来的方法绕过.于是修改成以下更为复杂的语句:
strnqp="ado"
strnqp=strnqp&"db."
strnqp=strnqp&"strea"
strnqp=strnqp&"m"
Set Ads = Server.CreateObject(strnqp)
此时测试,一切正常!
看来,新版本的杀毒软件已经"聪明"多了,不会被雕虫小技欺骗.不过机器毕竟是机器,只要没有禁止adodb.stream组件的使用,总有办法可以从杀毒软件眼皮底下蒙混过关.


终于客户那边又现了奇怪的问题。代码在我这边一切正常,到了那边的服务器就变成了“脚本错误:d_file.myform.uploadfile为空或不是对象”

好,怎么解决呢。问题都没办法在本地重现。一直以为代码写得不安全,在那儿重新检查这套组件的源代码,结果最后网上有人说是服务器端的杀毒软件把adodb.stream对象当作恶意脚本屏蔽了。一边感叹现在的杀毒软件真是聪明、智能阿,一边批量替换。

把Set tStream = Server.CreateObject ("ADODB.Stream")
改为:
Set tStream = Server.CreateObject ("ADODB." & "Stream")

用来骗过杀毒软件的。

结果问题依旧!令人震怒!!网上那些解决方法都是你抄我我抄你,自己测试过没有?!

只好硬着头皮再去查问题。亲自跑道客户那儿,原来是widnows2003操作系统。

以下是解决方案:

1、打开这个网址找到出错的行:

....../eWebEditor/asp/upload.asp?style=coolblue&type=image

我这边出错的居然是一行中文注释!真不知道IIS6.0怎么搞的。去掉这一行后一切恢复正常!

莫非网上那些出问题的同志们都是因为修改了它上传位置的源代码并且做了注释的结果?

2、接着,因为2003有上传下载的大小限制,还必须把这一块改掉。

1、先在服务里关闭 iis admin service 服务。
2、找到 c:windowssystem32inetsrv 下的 metabase.xml 文件。
3、用记事本打开,找到 ASPMaxRequestEntityAllowed
把它修改为需要的值(可修改为10M即:10240000),默认为:204800,即:200K。
4、找到 AspBufferingLimit 把它修改为需要的值(可修改为20M即:20480000)。
5、保存metabase.xml 文件,然后启动 iis admin service和World Wide Web Publishing Service 服务。

3、最后发我自己的upload.asp,有需要的可以像我一样改存取路径和存取限制。用粉红色标记了

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
THE END
分享
二维码
< <上一篇
下一篇>>