当前位置:商务互联客户帮助中心>虚拟主机>文章内容
东西方文化差异导致的ADODB.Stream 错误 '800a0bbc'
来源:发布时间:2007-09-12  
事情的起因是这样的,应公司要求为客户写了一个小网站,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,"/","")


调试通过。



 
 
 
CopyRight © 2001~2006 All Rights Reserved 四川华西资讯网络科技有限公司-商务互联
地址:四川省成都市沙湾路61号6楼 邮编:610036
QQ  市场:业务咨询:267033680ÒµÎñ×Éѯ:267033653业务咨询:267033655业务咨询:267033665业务咨询:267033683业务咨询:267033675 
    技术:技术支持:267033652技术支持:267033677技术支持:267033663技术支持:267033662技术支持:267033664 技术支持:267033671
续费联系:技术支持:267033674  备案联系:技术支持:267033651
Msn : lixueou@35inter.com / luotian@35inter.com
电话总机:(028)86086035 / 87679035 / 87679635 / 87678935 / 87679335
销售热线:总机转 8002 8003 8006 8007 8009 8010 技术专线:总机转 8208 8210 8209 8202 8203 8220
传真总机: 028-87787735 汇款底单 合同文件
联系信箱 网管:webmaster@35inter.com,财务:vivian@35inter.com,技术:support@35inter.com
《中华人民共和国增值电信业务经营许可证》编号:川B2-20050002号 网站备案号:川B2-20050002  营业执照