广

ASP编程

  • IOS开发
  • android开发
  • PHP编程
  • JavaScript
  • ASP.NET
  • ASP编程
  • JSP编程
  • Java编程
  • 易语言
  • Ruby编程
  • Perl编程
  • AJAX
  • 正则表达式
  • C语言
  • 编程开发

    7.6 用文本+ASP打造新闻发布系统

    2018-05-07 10:24:30 次阅读 稿源:互联网
    零七广告

    //图片上传
    〈SCRIPT RUNAT=SERVER LANGUAGE=VBSCRIPT〉
    Function GetUpload(FormData)
    Dim DataStart,DivStr,DivLen,DataSize,FormFieldData
    '分隔标志串(+CRLF)
    DivStr = LeftB(FormData,InStrB(FormData,str2bin(VbCrLf)) + 1)
    '分隔标志串长度
    DivLen = LenB(DivStr)
    PosOpenBoundary = InStrB(FormData,DivStr)
    PosCloseBoundary = InStrB(PosOpenBoundary + 1,FormData,DivStr)
    Set Fields = CreateObject("Scripting.Dictionary")

    While PosOpenBoundary 〉 0 And PosCloseBoundary 〉 0
    'name起始位置(name="xxxxx"),加6是因为[name="]长度为6
    FieldNameStart = InStrB(PosOpenBoundary,FormData,str2bin("name=")) + 6
    FieldNameSize = InStrB(FieldNameStart,FormData,ChrB(34)) - FieldNameStart '(")的ASC值=34
    FormFieldName = bin2str(MidB(FormData,FieldNameStart,FieldNameSize))

    'filename起始位置(filename="xxxxx")
    FieldFileNameStart = InStrB(PosOpenBoundary,FormData,str2bin("filename=")) + 10
    If FieldFileNameStart 〈 PosCloseBoundary And FieldFileNameStart 〉 PosopenBoundary Then
    FieldFileNameSize = InStrB(FieldFileNameStart,FormData,ChrB(34)) - FieldFileNameStart '(")的ASC值=34
    FormFileName = bin2str(MidB(FormData,FieldFileNameStart,FieldFileNameSize))
    Else
    FormFileName = ""
    End If

    'Content-Type起始位置(Content-Type: xxxxx)
    FieldFileCTStart = InStrB(PosOpenBoundary,FormData,str2bin("Content-Type:")) + 14
    If FieldFileCTStart 〈 PosCloseBoundary And FieldFileCTStart 〉 PosOpenBoundary Then
    FieldFileCTSize = InStrB(FieldFileCTStart,FormData,str2bin(VbCrLf & VbCrLf)) - FieldFileCTStart
    FormFileCT = bin2str(MidB(FormData,FieldFileCTStart,FieldFileCTSize))
    Else
    FormFileCT = ""
    End If

    '数据起始位置:2个CRLF开始
    DataStart = InStrB(PosOpenBoundary,FormData,str2bin(VbCrLf & VbCrLf)) + 4
    If FormFileName 〈〉 "" Then
    '数据长度,减1是因为数据文件的存取字节数问题(可能是AppendChunk方法的问题):
    '由于字节数为奇数的图象存到数据库时会去掉最后一个字符导致图象不能正确显示,
    '字节数为偶数的数据文件就不会出现这个问题,因此必须保持字节数为偶数。
    DataSize = InStrB(DataStart,FormData,DivStr) - DataStart - 1
    FormFieldData = MidB(FormData,DataStart,DataSize)
    Else
    '数据长度,减2是因为分隔标志串前有一个CRLF
    DataSize = InStrB(DataStart,FormData,DivStr) - DataStart - 2
    FormFieldData = bin2str(MidB(FormData,DataStart,DataSize))
    End If
    '建立一个Dictionary集存储Form中各个Field的相关数据
    Set Field = CreateUploadField()
    Field.Name = FormFieldName
    Field.FilePath = FormFileName
    Field.FileName = GetFileName(FormFileName)
    Field.ContentType = FormFileCT
    Field.Length = LenB(FormFieldData)
    Field.Value = FormFieldData

    Fields.Add FormFieldName, Field

    PosOpenBoundary

    零七网部分新闻及文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与零七网进行文章共享合作。

    零七广告
    零七广告
    零七广告
    零七广告