您的位置:首页 > 编程语言 > ASP

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

2015-06-24 15:13 756 查看
如果本身没有预览功能:

在 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的版本,就提示不支持预览。对于上传文件功能的判断,问题既然知道原因了,解决的方法自然也就手到擒来了。在操作文件名是,注意是单纯的文件名,而非完整文件路径。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: