让我们一起爱米兰
站内搜搜:
移动设备
请扫描二维码
或访问
m.milan100.com
您所在的位置 -> 米兰百分百 -> ASP -> 东西方文化差异导致的ADODB.Stream 错误 '800a0bbc'

东西方文化差异导致的ADODB.Stream 错误 '800a0bbc'

点击数:871 发表时间:2010-07-26 18:37:37 作者: 来源链接:
分享到:
分享到微信

事情的起因是这样的,应公司要求为客户写了一个小网站,Very Easy的一个东西,花了2天的时间做完了,本机调试ok。上传到指定的服务器,继续测试,这时候问题出现了。

上传产品图片的时候,报错

ADODB.Stream Error '800a0bbc'

Write to file failed

???

服务器目录权限没开,这是脑袋中的第一反应。马上message给服务器管理员,回答是这样的“EveryOne的modify权限都开了”。

???

上传目录不存在,错误的第二种可能。检查了一下,Upfiles目录好好地待在那儿呢。

???

本地调试都通过了啊?程序应该是没有问题的,难道服务器有问题,不死心,亲眼看着服务器管理员把权限列表打开来看,没错,别说iuser,连everyone都开了modify。

决定把savetofile的路径response出来看看先。

E:\website\freeweb\upfiles\10\4\20060552.jpg

???怎么多出来个“10\4”?重新检查代码,没问题。

为什么同样的代码在不同的服务器上结果会不同?

本机:中文windows xp IIS5.1

服务器:英文windows2000 IIS5.0

???,中文?英文?难道是stream的charset导致了文件名转换的时候多出来个“10\4”?把uploadclass中所有charset="gb2312"改成utf-8。……无效,这是个愚蠢的做法……

好吧,一步步反向查上去,看看是哪里出了毛病,我用的是风声无组件上传

strFnam=GetTimeStr()

这时用来生成随机文件名的。而在GetTimeStr()里有这么一句

GetTimeStr=strDate&lngTime

strDate在类初始化的时候就被赋值了

 strDate    = replace(cstr(Date()),"-","")

嘿嘿,我知道了,中文服务器里date()得到的时间是"2006-10-4",而英文服务器得到的是"10\4\2006"

就是这个该死的"\",ok,只要在后面加上一句

  strDate = replace(strDate,"/","")

调试通过。

0
很 好
0
一 般
0
差 劲
热门新闻
相关文章
上一篇: asp 利用 xmlhttp 抓取网页内容
下一篇: ASP+MsSqlServer 存储过程分页
评论区
匿名

返回首页 | 收藏本页 | 回到顶部
Copyright 2010. 米兰百分百 Powered By Bridge.
京ICP备15050557号