用户名:
密 码:
当前位置: 主页 > 域名主机 > 虚拟主机 >

windows2008+iis7,无组件上传写入文件失败,ADODB.Stream 错误

点击:
银众网络-专业的域名注册虚拟主机服务商!虚拟主机全部为高带宽高配置、性能强劲。香港虚拟主机、美国虚拟主机等海外虚拟主机在速度和稳定性处于国际领先水平!每款虚拟主机均送同等容量的备份空间,随时备份让你的网站安全无忧,云主机更是功能强劲傲视群雄!

  现象:写入文件失败,ADODB.Stream 错误 800a0bbc

  条件:在已排除一般的解决方法文件夹权限后,并且服务器为windows2008

  希望写这文章可以让大家避免浪费太多时间,最快地解决问题。

  一个ASP程序用到无组件上传,在本地XP SP3 IIS5.1及在Windows Server 2003 + IIS6.0上测试均为可以正常上传.到把程序放了windows2008+IIS7.0上发现内部服务器错误500,最后我把其调为可显示详细错误信息,显示为:

  写入文件失败,ADODB.Stream 错误 800a0bbc

  我在网上找了很多相关的解决方法,说是文夹权限或是目录问题,很显然碰到的并非为权限问题.看了很多解决方法都没用,在差不多绝望的时候,竟然看到一篇文章说windows2008显示系统时间的格式竟然是:2010/5/24,而并非是以前的2010-5-24,由于重命名上传的文件是按时间来命名的,本要求为

  2010524.xls,但到windows2008平台上最后变成了2010/5/24.xls,这样则会有一个问题,就是会被当成文件夹和路径处理,最终会导致了真正的不存在目录,最后会写入出错。

  如果可以,你可以试一下response.write 写出整个另存为的路径出来即可看到如:***/uploadfile/2010/5/24.xls,而且实际应该为::***/uploadfile/2010524.xls才是正确的

  解决方法:

  只要为“2010/5/24”中的“/”替换为“”(空)即可:

  原uploadsave.asp中的函数为:

  function makefilename(fname)

  fname = date()

  fname = replace(fname,"-","")

  fname = replace(fname," ","")

  fname = replace(fname,":","")

  makefilename=fname&".xls"

  end function

  在其中加上一句:fname = replace(fname,"/","")

  最后为:

  function makefilename(fname)

  fname = date()

  fname = replace(fname,"-","")

  fname = replace(fname,"/","")

  fname = replace(fname," ","")

  fname = replace(fname,":","")

  makefilename=fname&".xls"

  end function

  最后测试,上传成功。(转载,希望对用户有帮助)

本文由虚拟主机域名注册服务商 银众网络(http://www.yinzhong.net) 整理,如需转载,请保留来源。
(责任编辑:admin)
顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------
栏目列表
推荐内容