[ Index ]
 

Code source de vtiger CRM 5.0.2

Accdez au Source d'autres logiciels libresSoutenez Angelica Josefina !

title

Body

[fermer]

/include/fckeditor/editor/filemanager/browser/default/connectors/asp/ -> class_upload.asp (source)

   1  <!--
   2   * FCKeditor - The text editor for internet
   3   * Copyright (C) 2003-2005 Frederico Caldeira Knabben
   4   * 
   5   * Licensed under the terms of the GNU Lesser General Public License:
   6   *         http://www.opensource.org/licenses/lgpl-license.php
   7   * 
   8   * For further information visit:
   9   *         http://www.fckeditor.net/
  10   * 
  11   * "Support Open Source software. What about a donation today?"
  12   * 
  13   * File Name: class_upload.asp
  14   *     These are the classes used to handle ASP upload without using third
  15   *     part components (OCX/DLL).
  16   * 
  17   * File Authors:
  18   *         NetRube (netrube@126.com)
  19  -->
  20  <%
  21  '**********************************************
  22  ' File:        NetRube_Upload.asp
  23  ' Version:    NetRube Upload Class Version 2.1 Build 20050228
  24  ' Author:    NetRube
  25  ' Email:    NetRube@126.com
  26  ' Date:        02/28/2005
  27  ' Comments:    The code for the Upload.
  28  '            This can free usage, but please
  29  '            not to delete this copyright information.
  30  '            If you have a modification version,
  31  '            Please send out a duplicate to me.
  32  '**********************************************
  33  ' 文件名:    NetRube_Upload.asp
  34  ' 版本:        NetRube Upload Class Version 2.1 Build 20050228
  35  ' 作者:        NetRube(网络乡巴佬)
  36  ' 电子邮件:    NetRube@126.com
  37  ' 日期:        2005年02月28日
  38  ' 声明:        文件上传类
  39  '            本上传类可以自由使用,但请保留此版权声明信息
  40  '            如果您对本上传类进行修改增强,
  41  '            请发送一份给俺。
  42  '**********************************************
  43  
  44  Class NetRube_Upload
  45  
  46      Public    File, Form
  47      Private oSourceData
  48      Private nMaxSize, nErr, sAllowed, sDenied
  49      
  50      Private Sub Class_Initialize
  51          nErr        = 0
  52          nMaxSize    = 1048576
  53          
  54          Set File            = Server.CreateObject("Scripting.Dictionary")
  55          File.CompareMode    = 1
  56          Set Form            = Server.CreateObject("Scripting.Dictionary")
  57          Form.CompareMode    = 1
  58          
  59          Set oSourceData        = Server.CreateObject("ADODB.Stream")
  60          oSourceData.Type    = 1
  61          oSourceData.Mode    = 3
  62          oSourceData.Open
  63      End Sub
  64      
  65      Private Sub Class_Terminate
  66          Form.RemoveAll
  67          Set Form = Nothing
  68          File.RemoveAll
  69          Set File = Nothing
  70          
  71          oSourceData.Close
  72          Set oSourceData = Nothing
  73      End Sub
  74      
  75      Public Property Get Version
  76          Version = "NetRube Upload Class Version 1.0 Build 20041218"
  77      End Property
  78  
  79      Public Property Get ErrNum
  80          ErrNum    = nErr
  81      End Property
  82      
  83      Public Property Let MaxSize(nSize)
  84          nMaxSize    = nSize
  85      End Property
  86      
  87      Public Property Let Allowed(sExt)
  88          sAllowed    = sExt
  89      End Property
  90      
  91      Public Property Let Denied(sExt)
  92          sDenied    = sExt
  93      End Property
  94  
  95      Public Sub GetData
  96          Dim aCType
  97          aCType = Split(Request.ServerVariables("HTTP_CONTENT_TYPE"), ";")
  98          If aCType(0) <> "multipart/form-data" Then
  99              nErr = 1
 100              Exit Sub
 101          End If
 102          
 103          Dim nTotalSize
 104          nTotalSize    = Request.TotalBytes
 105          If nTotalSize < 1 Then
 106              nErr = 2
 107              Exit Sub
 108          End If
 109          If nMaxSize > 0 And nTotalSize > nMaxSize Then
 110              nErr = 3
 111              Exit Sub
 112          End If
 113          
 114          oSourceData.Write Request.BinaryRead(nTotalSize)
 115          oSourceData.Position = 0
 116          
 117          Dim oTotalData, oFormStream, sFormHeader, sFormName, bCrLf, nBoundLen, nFormStart, nFormEnd, nPosStart, nPosEnd, sBoundary
 118          
 119          oTotalData    = oSourceData.Read
 120          bCrLf        = ChrB(13) & ChrB(10)
 121          sBoundary    = MidB(oTotalData, 1, InStrB(1, oTotalData, bCrLf) - 1)
 122          nBoundLen    = LenB(sBoundary) + 2
 123          nFormStart    = nBoundLen
 124          
 125          Set oFormStream = Server.CreateObject("ADODB.Stream")
 126          
 127          Do While (nFormStart + 2) < nTotalSize
 128              nFormEnd    = InStrB(nFormStart, oTotalData, bCrLf & bCrLf) + 3
 129              
 130              With oFormStream
 131                  .Type    = 1
 132                  .Mode    = 3
 133                  .Open
 134                  oSourceData.Position = nFormStart
 135                  oSourceData.CopyTo oFormStream, nFormEnd - nFormStart
 136                  .Position    = 0
 137                  .Type        = 2
 138                  .CharSet    = "UTF-8"
 139                  sFormHeader    = .ReadText
 140                  .Close
 141              End With
 142              
 143              nFormStart    = InStrB(nFormEnd, oTotalData, sBoundary) - 1
 144              nPosStart    = InStr(22, sFormHeader, " name=", 1) + 7
 145              nPosEnd        = InStr(nPosStart, sFormHeader, """")
 146              sFormName    = Mid(sFormHeader, nPosStart, nPosEnd - nPosStart)
 147              
 148              If InStr(45, sFormHeader, " filename=", 1) > 0 Then
 149                  Set File(sFormName)            = New NetRube_FileInfo
 150                  File(sFormName).FormName    = sFormName
 151                  File(sFormName).Start        = nFormEnd
 152                  File(sFormName).Size        = nFormStart - nFormEnd - 2
 153                  nPosStart                    = InStr(nPosEnd, sFormHeader, " filename=", 1) + 11
 154                  nPosEnd                        = InStr(nPosStart, sFormHeader, """")
 155                  File(sFormName).ClientPath    = Mid(sFormHeader, nPosStart, nPosEnd - nPosStart)
 156                  File(sFormName).Name        = Mid(File(sFormName).ClientPath, InStrRev(File(sFormName).ClientPath, "\") + 1)
 157                  File(sFormName).Ext            = LCase(Mid(File(sFormName).Name, InStrRev(File(sFormName).Name, ".") + 1))
 158                  nPosStart                    = InStr(nPosEnd, sFormHeader, "Content-Type: ", 1) + 14
 159                  nPosEnd                        = InStr(nPosStart, sFormHeader, vbCr)
 160                  File(sFormName).MIME        = Mid(sFormHeader, nPosStart, nPosEnd - nPosStart)
 161              Else
 162                  With oFormStream
 163                      .Type    = 1
 164                      .Mode    = 3
 165                      .Open
 166                      oSourceData.Position = nPosEnd
 167                      oSourceData.CopyTo oFormStream, nFormStart - nFormEnd - 2
 168                      .Position    = 0
 169                      .Type        = 2
 170                      .CharSet    = "UTF-8"
 171                      Form(sFormName)    = .ReadText
 172                      .Close
 173                  End With
 174              End If
 175              
 176              nFormStart    = nFormStart + nBoundLen
 177          Loop
 178          
 179          oTotalData = ""
 180          Set oFormStream = Nothing
 181      End Sub
 182  
 183      Public Sub SaveAs(sItem, sFileName)
 184          If File(sItem).Size < 1 Then
 185              nErr = 2
 186              Exit Sub
 187          End If
 188          
 189          If Not IsAllowed(File(sItem).Ext) Then
 190              nErr = 4
 191              Exit Sub
 192          End If
 193          
 194          Dim oFileStream
 195          Set oFileStream = Server.CreateObject("ADODB.Stream")
 196          With oFileStream
 197              .Type        = 1
 198              .Mode        = 3
 199              .Open
 200              oSourceData.Position = File(sItem).Start
 201              oSourceData.CopyTo oFileStream, File(sItem).Size
 202              .Position    = 0
 203              .SaveToFile sFileName, 2
 204              .Close
 205          End With
 206          Set oFileStream = Nothing
 207      End Sub
 208      
 209      Private Function IsAllowed(sExt)
 210          Dim oRE
 211          Set oRE    = New RegExp
 212          oRE.IgnoreCase    = True
 213          oRE.Global        = True
 214          
 215          If sDenied = "" Then
 216              oRE.Pattern    = sAllowed
 217              IsAllowed    = (sAllowed = "") Or oRE.Test(sExt)
 218          Else
 219              oRE.Pattern    = sDenied
 220              IsAllowed    = Not oRE.Test(sExt)
 221          End If
 222          
 223          Set oRE    = Nothing
 224      End Function
 225  End Class
 226  
 227  Class NetRube_FileInfo
 228      Dim FormName, ClientPath, Path, Name, Ext, Content, Size, MIME, Start
 229  End Class
 230  %>


Gnr le : Sun Feb 25 10:22:19 2007 par Balluche grce PHPXref 0.7