~ubuntu-branches/ubuntu/natty/moin/natty-updates

« back to all changes in this revision

Viewing changes to wiki/htdocs/applets/FCKeditor/editor/filemanager/upload/asp/class_upload.asp

  • Committer: Bazaar Package Importer
  • Author(s): Jonas Smedegaard
  • Date: 2008-06-22 21:17:13 UTC
  • mto: This revision was merged to the branch mainline in revision 18.
  • Revision ID: james.westby@ubuntu.com-20080622211713-inlv5k4eifxckelr
ImportĀ upstreamĀ versionĀ 1.7.0

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
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
%>
 
 
b'\\ No newline at end of file'