菜单
  

    3)第三部分(文件内容)
    即文件的二进制内容
    4)第四部分(结束标志)
    -----------------------------7d329631b04d4

    结合第一部分和第四部分的内容来看,"-----------------------------7d329631b04d4"(每次上传,数值都不一样)起到了分割符的作用,它标志着一段数据(当有多个上传内容时)的开始和结束。从保存文件所需要的信息来讲,我们首先需要从第二部分数据的"filename"中获得文件名称,然后需要正确定位文件的起始位置,最后利用ASP技术将二进制文件用本来的文件名保存即可。若同时上传多个内容(如多个文本框和文件),也是按同样的方法处理,每部分的内容都包含在分割符之中,只是文本框和文件的表现形式稍有不同,这可以通过具体分析其二进制代码来了解。
    (3).利用ASP技术实现文件存储
    上传文件代码的处理
    1) 获得分割符代码

    从上面的分析我们已经知道,分割符起到了分割多个数据段(包括文本框和各种类型的文件)的重要作用。前面已经分析过,分割符出现在第一个回车换行符号前。因此,通过下面这段程序就可获得分割符代码:
    <%
    newline=chrB(13) & chrB(10) 'newline表示二进制的回车符
    filesize=Request.TotalBytes 'filesize是上传文件的大小
    filedata=Request.BinaryRead(filesize) 'filedata是上传文件的二进制数据
    pider=leftB(filedata,clng(instrb(filedata,newline))-1) 'pider是分割符
    %>

    注:因为这里处理的都是二进制字节码,因此,所有的函数都是使用它的二进制版本,加了"b "。
    2) 获得文件(或文本框)内容
        .预备函数(将二进制串转化成字符串)。上传文件的内容不需要经过二进制向字符串的转换过程,直接保存就可。但是,若需提取文本框内容或文件的名称,就必须进行转换。因此,需要编写一个通用的,并且适用于汉字的转换函数。以下是该函数代码:

    Function BtoS (bstr)
    If not Is Null (bstr) Then
    for i = 0 to lenb(bstr) - 1
    bchr = midb(bstr,i+1,1)
    If ascb(bchr)>127 Then '汉字是双字节,得两个字符一起处理
    temp = temp&chr(ascw(midb(bstr, i+2, 1)&bchr))
    i = i+1
    Else
    temp = temp&chr(ascb(bchr))
    End If
    next
    End If
    BtoS = temp
    End Function

        获得文件(或文本框)内容。在实际的WEB应用中,上传操作可能涉及多项内容,如多个文本框、多个文件等等。文件和文本框很好区分,文件的数据中包含了"filename="字串。因此,我们写了如下的通用函数,既可用于提取文件内容,又可提取文本框内容(需进行二进制转换):

    Function getdata(byval data, byval pider, final) 'data表示二进制串;pider表示分割符;final表示数据的结束位置
    filename=chrb(102)&chrb(105)&chrb(108)&chrb(101)&chrb(110)&chrb(97)&chrb(109)&chrb(101)&chrb(61)&chrb(34) '字符串"filename"的二进制表示
    bncrlf=chrb(13)&chrb(10) '二进制的回车符
    startpos = instrb(data,pider)+lenb(pider)+lenb(bncrlf) ' 开始位置
    endpos = instrb(startpos,data, pider)-lenb(bncrlf) '结束位置
    part1 = midb(data, startpos, endpos-startpos) '两个分割符之间的内容
    firstline = midb(part1, 1, instrb(part1, bncrlf)-1) ' 内容之前的说明段
    If (instrb(firstline,filename)=0) Then '若为文本框,获得文本框字符串内容
    stemp=midb(part1,instrb(part1,bncrlf&bncrlf)+lenb(bncrlf&bncrlf),lenb(part1)-instrb(part1,bncrlf&bncrlf)+lenb(bncrlf&bncrlf))
  1. 上一篇:企业ERP管理软件采购管理采购合同子模块的设计与开发
  2. 下一篇:jsp+mysql大学校园二手交易平台开发+数据流图+ER图
  1. XML文档在组态软件中的应用

  2. OpenCV高斯混合模型的交互式图像分割

  3. 《大学计算机基础》课程...

  4. Unity3D+C#交互式虚拟温室仿...

  5. 基于工程光学课程建设的网络平台设计

  6. 结合自适应图像片与图割...

  7. 基于交互式多模型的目标跟踪算法研究

  8. 中考体育项目与体育教学合理结合的研究

  9. java+mysql车辆管理系统的设计+源代码

  10. 乳业同业并购式全产业链...

  11. 河岸冲刷和泥沙淤积的监测国内外研究现状

  12. 十二层带中心支撑钢结构...

  13. 杂拟谷盗体内共生菌沃尔...

  14. 酸性水汽提装置总汽提塔设计+CAD图纸

  15. 大众媒体对公共政策制定的影响

  16. 电站锅炉暖风器设计任务书

  17. 当代大学生慈善意识研究+文献综述

  

About

751论文网手机版...

主页:http://www.751com.cn

关闭返回