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

2008/4/1 9:54:22 来源:互联网 【 】 浏览:4720次
事情的起因是这样的,应公司要求为客户写了一个小网站,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,"/","")


调试通过。

  • 上一篇文章:[下载]SQLite 最新更新下载 3.3.12版
  • 下一篇文章:解决Access错误 Selected collating sequence not supported by the operating system
    当前地址:https://www.dns2003.com:443/help/hlp_dtl.asp?nid=10000181
    更多帮助登录: http://www.dns2003.com/help
    业务请咨询E网时代客服部