| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1018 人关注过本帖
标题:大家帮忙看看这些代码是什么意思?
只看楼主 加入收藏
gzbhappy
Rank: 2
等 级:论坛游民
帖 子:173
专家分:10
注 册:2008-3-30
结帖率:100%
收藏
 问题点数:0 回复次数:4 
大家帮忙看看这些代码是什么意思?
<%
Dim FormData, FormSize, Divider, bCrLf, Filelen
FormSize = Request.TotalBytes
    '分块读取,处理IIS 200K限制
    set bsd=createobject("ADODB.Stream")
    bsd.open
    bsd.type=1
    rd=0
    fk=102400
    do while rd<FormSize
    if FormSize-rd<fk then
    bid=request.BinaryRead(FormSize-rd)
    else
    bid=request.BinaryRead(fk)
    end if
    bsd.write bid
    rd=rd+fk
    if rd>FormSize then rd=FormSize
    loop
    bsd.position=0
    FormData=bsd.read()
'FormData = Request.BinaryRead(FormSize)
'                response.Write(FormSize)
'                response.End()
bCrLf = ChrB(13) & ChrB(10)
Divider = LeftB(FormData, InStrB(FormData, bCrLf) - 1)
Function SaveFile(FormFileField, Path, MaxSize, SavType)
    Dim StreamObj,StreamObj1
    Set StreamObj = Server.CreateObject("ADODB.Stream")
    Set StreamObj1 = Server.CreateObject("ADODB.Stream")
    StreamObj.Mode = 3
    StreamObj1.Mode = 3
    StreamObj.Type = 1
    StreamObj1.Type = 1
    SaveFile = ""
    StartPos = LenB(Divider) + 2
    FormFileField = Chr(34) & FormFileField & Chr(34)
    If Right(Path,1) <> "\" Then
        Path = Path & "\"
    End If
    Do While StartPos > 0
        strlen = InStrB(StartPos, FormData, bCrLf) - StartPos
        SearchStr = MidB(FormData, StartPos, strlen)
        If InStr(bin2str(SearchStr), FormFileField) > 0 Then
            FileName = bin2str(GetFileName(SearchStr,path,SavType))
            If FileName <> "" Then
                FileStart = InStrB(StartPos, FormData, bCrLf & bCrLf) + 4
                FileLen = InStrB(StartPos, FormData, Divider) - 2 - FileStart
                If FileLen/1024 <= MaxSize Then
                       FileContent = MidB(FormData, FileStart, FileLen)
                    StreamObj.Open
                    StreamObj1.Open
                    StreamObj.Write FormData
                    StreamObj.Position=FileStart-1
                    StreamObj.CopyTo StreamObj1,FileLen
                    If SavType =0 Then
                        SavType = 1
                    End If
                    StreamObj1.SaveToFile Path & FileName, SavType
                    StreamObj.Close
                    StreamObj1.Close
                    If SaveFile <> "" Then
                        SaveFile = SaveFile & ","  & FileName
                    Else
                        SaveFile = FileName
                    End If
                Else
                    If SaveFile <> "" Then
                        SaveFile = SaveFile & ",*TooBig*"
                    Else
                        SaveFile = "*TooBig*"
                    End If
                End If
            End If
        End If
        If InStrB(StartPos, FormData, Divider) < 1 Then
            Exit Do
        End If
        StartPos = InStrB(StartPos, FormData, Divider) + LenB(Divider) + 2
    Loop
End Function

Function GetFormVal(FormName)
    GetFormVal = ""
    StartPos = LenB(Divider) + 2
    FormName = Chr(34) & FormName & Chr(34)
    Do While StartPos > 0
        strlen = InStrB(StartPos, FormData, bCrLf) - StartPos
        SearchStr = MidB(FormData, StartPos, strlen)
        If InStr(bin2str(SearchStr), FormName) > 0 Then
               ValStart = InStrB(StartPos, FormData, bCrLf & bCrLf) + 4
               ValLen = InStrB(StartPos, FormData, Divider) - 2 - ValStart
                  ValContent = MidB(FormData, ValStart, ValLen)
               If GetFormVal <> "" Then
                GetFormVal = GetFormVal & "," & bin2str(ValContent)
            Else
                GetFormVal = bin2str(ValContent)
            End If
        End If
        If InStrB(StartPos, FormData, Divider) < 1 Then
            Exit Do
        End If
        StartPos = InStrB(StartPos, FormData, Divider) + LenB(Divider) + 2
    Loop
End Function

Function bin2str(binstr)
   Dim varlen, clow, ccc, skipflag
   skipflag = 0
   ccc = ""
   varlen = LenB(binstr)
   For i = 1 To varlen
       If skipflag = 0 Then
          clow = MidB(binstr, i, 1)
          If AscB(clow) > 127 Then
             ccc = ccc & Chr(AscW(MidB(binstr, i + 1, 1) & clow))
             skipflag = 1
          Else
             ccc = ccc & Chr(AscB(clow))
          End If
       Else
          skipflag = 0
       End If
   Next
   bin2str = ccc
End Function

Function str2bin(str)
    For i = 1 To Len(str)
        str2bin = str2bin & ChrB(Asc(Mid(str, i, 1)))
    Next
End Function

Function GetFileName(str,path,savtype)
    Set fs = Server.CreateObject("Scripting.FileSystemObject")
    str = RightB(str,LenB(str)-InstrB(str,str2bin("filename="))-9)
    GetFileName = ""
    FileName = ""
    For i = LenB(str) To 1 Step -1
        If MidB(str, i, 1) = ChrB(Asc("\")) Then
            FileName = MidB(str, i + 1, LenB(str) - i - 1)
            Exit For
        End If
    Next

    If savtype = 0 and fs.FileExists(path & bin2str(FileName)) = True Then
        hFileName = FileName
        rFileName = ""
        For i = LenB(FileName) To 1 Step -1
            If MidB(FileName, i, 1) = ChrB(Asc(".")) Then
                hFileName = LeftB(FileName, i-1)
                rFileName = RightB(FileName, LenB(FileName)-i+1)
                Exit For
            End If
        Next
           For j = 0 to 9999
               'hFileName = hFileName & str2bin(i)
               If fs.FileExists(path & bin2str(hFileName) & j & bin2str(rFileName)) = False Then
                   FileName = hFileName & str2bin(j) & rFileName
                   Exit For
              End If
           Next
    End If
       Set fs = Nothing
       GetFileName = FileName
End Function
%>
看了好长时间还是不明白是什么意思,望高手赐教
搜索更多相关主题的帖子: 代码 
2008-12-15 13:19
gzbhappy
Rank: 2
等 级:论坛游民
帖 子:173
专家分:10
注 册:2008-3-30
收藏
得分:0 
上面的代码是不是读取文本中的信息啊?
有点很不明白,
2008-12-15 13:24
gzbhappy
Rank: 2
等 级:论坛游民
帖 子:173
专家分:10
注 册:2008-3-30
收藏
得分:0 
至今还是有点不明白
2008-12-16 18:16
快速回复:大家帮忙看看这些代码是什么意思?
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.046554 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved