ADOdb.Stream对象Write方法的0x800A0BB9错误,请问怎么解决?

cndavidwang 2005-06-17 11:58:17
为了用Stream对象实现文件上传。
其中stream.write xxxx这一句出错。

如果是stream.write FormData //FromData是通过FormData = Request.BinaryRead获得的。
就没问题,

但如果是stream.write xxx //xxx是通过midb或leftb等方法获得的,
这个时候就会发生“参数类型不正确,或不在可以接受的范围之内,或与其他参数冲突。”这样的错误。

请问,错误是怎么发生的,应该怎么解决呢?
...全文
546 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
stefli 2005-06-17
  • 打赏
  • 举报
回复
如果你的leftb和midb组合起来的数据和BinaryRead一样,那肯定没有问题。
就怕你只要leftb和midb出来的内容,把其他关键的内容给丢了。
比如vbCrLf。
cndavidwang 2005-06-17
  • 打赏
  • 举报
回复
原来是这个样子啊,谢谢了。
stefli 2005-06-17
  • 打赏
  • 举报
回复
你是用ADODB.Stream吧。
它要求的数据应该是完整的。可能需要包含必要的vbcrlf等信息。

而上传图片存到数据库中,需要的信息就不一样了。

不是很清楚了。·sorry
杨米格 2005-06-17
  • 打赏
  • 举报
回复
这样的问题我遇到过,痛苦了好久。
我先将表单数据读出到一个内存中,然后用instrB,和MidB将我需要的数据取出来。
但是用stream.write 就和你发生了一样的错误。
我用Hex看了一下,原因是MidB取数据时,会在数据的末尾添加0x000000之内的东西。
解决方法就是不要在用midb,建立一个新stream,把所有数据都读到里面去,然后设置起始位置和长度,将需要的数据Copy到另外一个stream中。
cndavidwang 2005-06-17
  • 打赏
  • 举报
回复
谢谢您的答复,不过,实在是菜的比较厉害。还得请您再详细的指教一下。

请问,哪些算是关键内容呢?比如vbCrLf为何关键,少了这些就不被认为是Binary数据了吗?
在我的印象里,Post上来的Form数据,各个部分是通过CrLf分隔的,那么我最后需要的数据应该是不包括vbCrLf的啊。

28,406

社区成员

发帖
与我相关
我的任务
社区描述
ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
社区管理员
  • ASP
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧