当前位置: 首页 > 图文教程 > 网络编程 > ASP > 通过表单的做为二进制文件上传request.totalbytes提取出上传的二级制数据

ASP
ASP正则表达式技巧
ASP Access实现网站计数器(访问量)
ASP新闻分页,将一篇过长的文章分页,生成静态页面
一些关于asp 购物车的想法
一个sql查询器,自动画表格填字段
ASP实现文件直接下载的代码
把网页中的(电话,qq等数字)生成图片的ASP程序
asp长文章用分页符来分页显示
Asp函数介紹(37个常用函数)
ASP中的面向对象类
分页实现方法的性能比较
asp ajax跨域提交数据
asp修改文件和文件夹的名字的代码
ASP 多关键词查询实例代码
asp被杀毒软件误删的解决方法
asp 多关键词搜索的简单实现方法
asp 根据IP地址自动判断转向分站的代码
asp dictionary对象的用法
ASP 千万级数据分页的存储过程
ASP隐藏真实文件的下载功能实现代码

ASP 中的 通过表单的做为二进制文件上传request.totalbytes提取出上传的二级制数据


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-10-12   浏览: 129 ::
收藏到网摘: n/a

通过表单的做为二进制文件上传request.totalbytes提取出上传的二级制数据的代码说明。
复制代码 代码如下:

<input name="file" type="file">
formsize=request.totalbytes
formdata=request.binaryread(formsize)
bncrlf=chrB(13) & chrB(10)
divider=leftB(formdata,clng(instrb(formdata,bncrlf))-1)
datastart=instrb(formdata,bncrlf & bncrlf)+4
dataend=instrb(datastart+1,formdata,divider)-datastart
mydata=midb(formdata,datastart,dataend)

formsize=request.totalbytes
取得上传的最大字节数
-----------------------
formdata=request.binaryread(formsize)
取得二进制流的表单form数据
-----------------------
bncrlf=chrB(13) & chrB(10)
设定crlf 回车换行代码变量
------------------------------
divider=leftB(formdata,clng(instrb(formdata,bncrlf))-1)
取得第一个crlf左边的字节数据
instrb(formdata,bncrlf)-1机检查出crlf二进制字节的位值减一,即为该标志位信息之前的二进制数据,需要说明的是instrb返回的是clng,所以此处加了一个clng是多余的
------------------------------
datastart=instrb(formdata,bncrlf & bncrlf)+4
取得图象数据,去除form表单添加的头信息的启始位置,也就是你的type=file在form提交后的真正文件数据的字节起始位置
二个连续crlf的位置+4(即而个crlfg的长度)
-------------------------------
dataend=instrb(datastart+1,formdata,divider)-datastart
从上的取得的数据位置+1做为检查数据结尾的参考计算值,在datastart+1开始的位置检测返回第一个二进制form分隔头信息的位置,再减去datastar的相对位置
----------------------------
mydata=midb(formdata,datastart,dataend)
midb()取以上多番周折取得的上传文件数据的star end位制的数据
ok --------------> 现在干干净净的提取出上传的二级制数据
注:
(1).所有 *B系列的VB函数均是按字节byte来处理,处理二级制必须用他们
(2).type=file 和 相应的form类型的表单数据提交后均对每个文件域附加有相应的头信息
所以必须按上面的算法来明确找到真正的文件数据
(3).同时头信息里还包含上传初始文件名的数据如 c:\aaa\aaa.jpg,可以同样处理formdata的数据而提取该段文件域数据的初试文件名
(4).这些算法是来源于http“form”规范提供的格式数据,所以任何一家的处理算法都是大同小异的!