asp 上传文件包Microsoft VBScript 运行时错误 '800a0005'无效的过程调用或参数: 'Instr'

来源:互联网 发布:巴黎上学知乎 编辑:程序博客网 时间:2024/05/14 21:32

如果本身没有预览功能:

在 upload.asp 中查找 

if Instr(intTemp,strTemp,".")<>0 then

大概在657行

在该上面添加

'如果intTemp 为0 对intTemp重新赋值为1;如果不为0那就默认即可

if intTemp <> 0 Then
intTemp = intTemp
else
intTemp = 1
end if

该代码即可

报错原因是

'如果ie浏览器>6的话,安全默认级别 禁用了 文件上传到服务器中包含本地路径的

因此 intTemp=InstrRev(strTemp,"\") 该行代码的返回值是 0 

if Instr(intTemp,strTemp,".")<>0 then

Instr中的开始位置
'是从1开始的,如果为0 就会报错.为此我们在下面对intTemp做判断


如果代码带有 预览功能:

解决方法:

1、治标方式。
IE7以上版本其实把文件上传是否发送完整的本地路径做成一个选项,在IE的Internet选项中可以设置。如下图:

 


图一,点击浏览器的工具----》Internet安全选项
 
 

图二,完整路径选项设置----》设置为启动
由于默认是禁用的,所以会出现问题,把它启用就可以解决问题了。但这是治标的方法,如果网页是面向普通用户的,你不可能要求所有用户都来改变这个设置。
 

2、治本。
治本的方法只能靠改程序了。对于图片预览的,目前我还没有很好的方法获取到图片的本地完整路径,所以只能通过判断浏览器的版本,如果是IE7/FireFox3的版本,就提示不支持预览。对于上传文件功能的判断,问题既然知道原因了,解决的方法自然也就手到擒来了。在操作文件名是,注意是单纯的文件名,而非完整文件路径。


0 0
原创粉丝点击