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

« back to all changes in this revision

Viewing changes to MoinMoin/web/static/htdocs/applets/FCKeditor/editor/filemanager/connectors/cfm/cf_commands.cfm

  • 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
 
<cfsetting enablecfoutputonly="Yes">
2
 
<!---
3
 
 * FCKeditor - The text editor for Internet - http://www.fckeditor.net
4
 
 * Copyright (C) 2003-2010 Frederico Caldeira Knabben
5
 
 *
6
 
 * == BEGIN LICENSE ==
7
 
 *
8
 
 * Licensed under the terms of any of the following licenses at your
9
 
 * choice:
10
 
 *
11
 
 *  - GNU General Public License Version 2 or later (the "GPL")
12
 
 *    http://www.gnu.org/licenses/gpl.html
13
 
 *
14
 
 *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
15
 
 *    http://www.gnu.org/licenses/lgpl.html
16
 
 *
17
 
 *  - Mozilla Public License Version 1.1 or later (the "MPL")
18
 
 *    http://www.mozilla.org/MPL/MPL-1.1.html
19
 
 *
20
 
 * == END LICENSE ==
21
 
 *
22
 
 * This file include the functions that handle the Command requests
23
 
 * in the ColdFusion Connector (MX 6.0 and above).
24
 
--->
25
 
 
26
 
<cffunction name="FCKeditorFileUpload" returntype="void" output="true">
27
 
        <cfargument name="resourceType" type="string" required="yes" default="">
28
 
        <cfargument name="currentFolder" type="string" required="yes" default="">
29
 
        <cfargument name="sCommand" type="string" required="yes" default="">
30
 
 
31
 
        <cfset var sFileName = "">
32
 
        <cfset var sFilePart = "">
33
 
        <cfset var sFileExt = "">
34
 
        <cfset var sFileUrl = "">
35
 
        <cfset var sTempDir = "">
36
 
        <cfset var sTempFilePath = "">
37
 
        <cfset var errorNumber = 0>
38
 
        <cfset var customMsg = "">
39
 
        <cfset var counter = 0>
40
 
        <cfset var destination = "">
41
 
 
42
 
        <cftry>
43
 
                <cfif isDefined( "REQUEST.Config.TempDirectory" )>
44
 
                        <cfset sTempDir = REQUEST.Config.TempDirectory>
45
 
                <cfelse>
46
 
                        <cfset sTempDir = GetTempDirectory()>
47
 
                </cfif>
48
 
                <cfif NOT DirectoryExists (sTempDir)>
49
 
                        <cfthrow message="Invalid temporary directory: #sTempDir#">
50
 
                </cfif>
51
 
 
52
 
                <cffile action="UPLOAD" filefield="NewFile" destination="#sTempDir#" nameconflict="makeunique" mode="0755" />
53
 
                <cfset sTempFilePath = CFFILE.ServerDirectory & REQUEST.fs & CFFILE.ServerFile>
54
 
 
55
 
                <!--- Map the virtual path to the local server path. --->
56
 
                <cfset sServerDir = ServerMapFolder( ARGUMENTS.resourceType, ARGUMENTS.currentFolder, ARGUMENTS.sCommand) >
57
 
                <!--- Get the uploaded file name. --->
58
 
                <cfset sFileName = SanitizeFileName( CFFILE.ClientFile ) >
59
 
                <cfset sOriginalFileName = sFileName >
60
 
 
61
 
                <cfif isDefined( "REQUEST.Config.SecureImageUploads" ) and REQUEST.Config.SecureImageUploads>
62
 
                        <cfif not IsImageValid( sTempFilePath, CFFILE.ClientFileExt )>
63
 
                                <cftry>
64
 
                                <cffile action="delete" file="#sTempFilePath#">
65
 
                                <cfcatch type="any">
66
 
                                </cfcatch>
67
 
                                </cftry>
68
 
                                <cfthrow errorcode="202" type="fckeditor">
69
 
                        </cfif>
70
 
                </cfif>
71
 
 
72
 
                <cfif isDefined( "REQUEST.Config.HtmlExtensions" ) and not listFindNoCase( REQUEST.Config.HtmlExtensions, CFFILE.ClientFileExt )>
73
 
                        <cfif DetectHtml( sTempFilePath )>
74
 
                                <cftry>
75
 
                                <cffile action="delete" file="#sTempFilePath#">
76
 
                                <cfcatch type="any">
77
 
                                </cfcatch>
78
 
                                </cftry>
79
 
                                <cfthrow errorcode="202" type="fckeditor">
80
 
                        </cfif>
81
 
                </cfif>
82
 
 
83
 
                <cfif not IsAllowedExt( CFFILE.ClientFileExt, ARGUMENTS.resourceType )>
84
 
                        <cftry>
85
 
                        <cffile action="delete" file="#sTempFilePath#">
86
 
                        <cfcatch type="any">
87
 
                        </cfcatch>
88
 
                        </cftry>
89
 
                        <cfthrow errorcode="202" type="fckeditor">
90
 
                </cfif>
91
 
 
92
 
                <!--- When the original filename already exists, add numbers (0), (1), (2), ... at the end of the filename. --->
93
 
                <cfscript>
94
 
                        sFileExt = GetExtension( sFileName ) ;
95
 
                        sFilePart = RemoveExtension( sFileName );
96
 
                        while( fileExists( sServerDir & sFileName ) )
97
 
                        {
98
 
                                counter = counter + 1;
99
 
                                sFileName = sFilePart & '(#counter#).' & CFFILE.ClientFileExt;
100
 
                                errorNumber = 201;
101
 
                        }
102
 
                </cfscript>
103
 
 
104
 
                <cfset destination = sServerDir & sFileName>
105
 
 
106
 
                <cflock name="#destination#" timeout="30" type="Exclusive">
107
 
                <cftry>
108
 
                        <cffile action="move" source="#sTempFilePath#" destination="#destination#" mode="755">
109
 
                        <!--- omit CF 6.1 error during moving uploaded file, just copy that file instead of moving --->
110
 
                        <cfcatch type="any">
111
 
                                <cftry>
112
 
                                        <cffile action="copy" source="#sTempFilePath#" destination="#destination#" mode="755">
113
 
                                        <cfcatch type="any">
114
 
                                                <cfset errorNumber = 102>
115
 
                                        </cfcatch>
116
 
                                </cftry>
117
 
                                <cftry>
118
 
                                        <cffile action="delete" file="#sTempFilePath#">
119
 
                                        <cfcatch type="any">
120
 
                                        </cfcatch>
121
 
                                </cftry>
122
 
                        </cfcatch>
123
 
                </cftry>
124
 
                </cflock>
125
 
 
126
 
                <cfset sFileUrl = CombinePaths( GetResourceTypePath( ARGUMENTS.resourceType, sCommand ) , ARGUMENTS.currentFolder ) >
127
 
                <cfset sFileUrl = CombinePaths( sFileUrl , sFileName ) >
128
 
 
129
 
                <cfcatch type="fckeditor">
130
 
                        <cfset errorNumber = CFCATCH.ErrorCode>
131
 
                </cfcatch>
132
 
 
133
 
                <cfcatch type="any">
134
 
                        <cfset errorNumber = "1">
135
 
                        <cfset customMsg = CFCATCH.Message >
136
 
                </cfcatch>
137
 
 
138
 
        </cftry>
139
 
 
140
 
        <cfset SendUploadResults( errorNumber, sFileUrl, sFileName, customMsg ) >
141
 
</cffunction>
142
 
 
143
 
<cffunction name="GetFolders" returntype="void" output="true">
144
 
        <cfargument name="resourceType" type="String" required="true">
145
 
        <cfargument name="currentFolder" type="String" required="true">
146
 
 
147
 
        <cfset var i = 1>
148
 
        <cfset var folders = "">
149
 
        <!--- Map the virtual path to the local server path --->
150
 
        <cfset var sServerDir = ServerMapFolder( ARGUMENTS.resourceType, ARGUMENTS.currentFolder, "GetFolders" ) >
151
 
 
152
 
        <!--- Sort directories first, name ascending --->
153
 
        <cfdirectory action="list" directory="#sServerDir#" name="qDir" sort="type,name">
154
 
        <cfscript>
155
 
                while( i lte qDir.recordCount )
156
 
                {
157
 
                        if( compareNoCase( qDir.type[i], "FILE" ) and not listFind( ".,..", qDir.name[i] ) )
158
 
                        {
159
 
                                folders = folders & '<Folder name="#HTMLEditFormat( qDir.name[i] )#" />' ;
160
 
                        }
161
 
                        i = i + 1;
162
 
                }
163
 
        </cfscript>
164
 
        <cfoutput><Folders>#folders#</Folders></cfoutput>
165
 
</cffunction>
166
 
 
167
 
<cffunction name="GetFoldersAndfiles" returntype="void" output="true">
168
 
        <cfargument name="resourceType" type="String" required="true">
169
 
        <cfargument name="currentFolder" type="String" required="true">
170
 
 
171
 
        <cfset var i = 1>
172
 
        <cfset var folders = "">
173
 
        <cfset var files = "">
174
 
        <!--- Map the virtual path to the local server path --->
175
 
        <cfset var sServerDir = ServerMapFolder( ARGUMENTS.resourceType, ARGUMENTS.currentFolder, "GetFolders" ) >
176
 
 
177
 
        <!--- Sort directories first, name ascending --->
178
 
        <cfdirectory action="list" directory="#sServerDir#" name="qDir" sort="type,name">
179
 
        <cfscript>
180
 
                while( i lte qDir.recordCount )
181
 
                {
182
 
                        if( not compareNoCase( qDir.type[i], "DIR" ) and not listFind( ".,..", qDir.name[i] ) )
183
 
                        {
184
 
                                folders = folders & '<Folder name="#HTMLEditFormat(qDir.name[i])#" />' ;
185
 
                        }
186
 
                        else if( not compareNoCase( qDir.type[i], "FILE" ) )
187
 
                        {
188
 
                                fileSizeKB = round(qDir.size[i] / 1024) ;
189
 
                                files = files & '<File name="#HTMLEditFormat(qDir.name[i])#" size="#IIf( fileSizeKB GT 0, DE( fileSizeKB ), 1)#" />' ;
190
 
                        }
191
 
                        i = i + 1 ;
192
 
                }
193
 
        </cfscript>
194
 
        <cfoutput><Folders>#folders#</Folders></cfoutput>
195
 
        <cfoutput><Files>#files#</Files></cfoutput>
196
 
</cffunction>
197
 
 
198
 
<cffunction name="CreateFolder" returntype="void" output="true">
199
 
        <cfargument name="resourceType" required="true" type="string">
200
 
        <cfargument name="currentFolder" required="true" type="string">
201
 
 
202
 
        <cfset var sNewFolderName = url.newFolderName >
203
 
        <cfset var sServerDir = "" >
204
 
        <cfset var errorNumber = 0>
205
 
        <cfset var sErrorMsg = "">
206
 
        <cfset var currentFolderPath = ServerMapFolder( ARGUMENTS.resourceType, ARGUMENTS.currentFolder, 'CreateFolder' )>
207
 
 
208
 
        <cfparam name="url.newFolderName" default="">
209
 
 
210
 
        <cfscript>
211
 
                sNewFolderName = SanitizeFolderName( sNewFolderName ) ;
212
 
        </cfscript>
213
 
 
214
 
        <cfif not len( sNewFolderName ) or len( sNewFolderName ) gt 255>
215
 
                <cfset errorNumber = 102>
216
 
        <cfelseif directoryExists( currentFolderPath & sNewFolderName )>
217
 
                <cfset errorNumber = 101>
218
 
        <cfelseif find( "..", sNewFolderName )>
219
 
                <cfset errorNumber = 103>
220
 
        <cfelse>
221
 
                <cfset errorNumber = 0>
222
 
 
223
 
                <!--- Map the virtual path to the local server path of the current folder. --->
224
 
                <cfset sServerDir = currentFolderPath & sNewFolderName >
225
 
 
226
 
                <cftry>
227
 
                        <cfdirectory action="create" directory="#currentFolderPath##sNewFolderName#" mode="755">
228
 
                        <cfcatch type="any">
229
 
                        <!---
230
 
                                un-resolvable error numbers in ColdFusion:
231
 
                                * 102 : Invalid folder name.
232
 
                                * 103 : You have no permissions to create the folder.
233
 
                        --->
234
 
                        <cfset errorNumber = 110>
235
 
                        </cfcatch>
236
 
                </cftry>
237
 
        </cfif>
238
 
 
239
 
        <cfoutput><Error number="#errorNumber#" /></cfoutput>
240
 
</cffunction>