中文的无组件文件上传ASP函数

深深的忘记你丶

深深的忘记你丶

2016-01-29 17:46

中文的无组件文件上传ASP函数,中文的无组件文件上传ASP函数
  说明:持中文的无组件文件上传ASP函数,由于ASP不支持二进制写入文件,所以存成文件时必须使用组件,本函数只提供截取上传文件的数据,可以写入到数据库。

<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
 &nb
展开更多 50%)
分享

猜你喜欢

中文的无组件文件上传ASP函数

ASP
中文的无组件文件上传ASP函数

无组件文件上传代码实例

ASP
无组件文件上传代码实例

s8lol主宰符文怎么配

英雄联盟 网络游戏
s8lol主宰符文怎么配

一个的无组件上传的ASP代码

ASP
一个的无组件上传的ASP代码

多表单域无组件文件上传的例子

ASP
多表单域无组件文件上传的例子

lol偷钱流符文搭配推荐

英雄联盟 网络游戏
lol偷钱流符文搭配推荐

Asp无组件上传进度条解决方案

ASP
Asp无组件上传进度条解决方案

asp组件上传

ASP
asp组件上传

lolAD刺客新符文搭配推荐

英雄联盟
lolAD刺客新符文搭配推荐

Linux指令篇:网络通讯--tty

Linux指令篇:网络通讯--tty

精彩实用:Win XP热门技巧十招

精彩实用:Win XP热门技巧十招
下拉加载更多内容 ↓