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

如果本身没有预览功能:

在 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
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值