1 | #!/usr/bin/env perl
|
---|
2 |
|
---|
3 | #####
|
---|
4 | # FCKeditor - The text editor for Internet - http://www.fckeditor.net
|
---|
5 | # Copyright (C) 2003-2009 Frederico Caldeira Knabben
|
---|
6 | #
|
---|
7 | # == BEGIN LICENSE ==
|
---|
8 | #
|
---|
9 | # Licensed under the terms of any of the following licenses at your
|
---|
10 | # choice:
|
---|
11 | #
|
---|
12 | # - GNU General Public License Version 2 or later (the "GPL")
|
---|
13 | # http://www.gnu.org/licenses/gpl.html
|
---|
14 | #
|
---|
15 | # - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
|
---|
16 | # http://www.gnu.org/licenses/lgpl.html
|
---|
17 | #
|
---|
18 | # - Mozilla Public License Version 1.1 or later (the "MPL")
|
---|
19 | # http://www.mozilla.org/MPL/MPL-1.1.html
|
---|
20 | #
|
---|
21 | # == END LICENSE ==
|
---|
22 | #
|
---|
23 | # This is the File Manager Connector for Perl.
|
---|
24 | #####
|
---|
25 |
|
---|
26 | ##
|
---|
27 | # ATTENTION: To enable this connector, look for the "SECURITY" comment in config.pl.
|
---|
28 | ##
|
---|
29 |
|
---|
30 | ## START: Hack for Windows (Not important to understand the editor code... Perl specific).
|
---|
31 | if(Windows_check()) {
|
---|
32 | chdir(GetScriptPath($0));
|
---|
33 | }
|
---|
34 |
|
---|
35 | sub Windows_check
|
---|
36 | {
|
---|
37 | # IIS,PWS(NT/95)
|
---|
38 | $www_server_os = $^O;
|
---|
39 | # Win98 & NT(SP4)
|
---|
40 | if($www_server_os eq "") { $www_server_os= $ENV{'OS'}; }
|
---|
41 | # AnHTTPd/Omni/IIS
|
---|
42 | if($ENV{'SERVER_SOFTWARE'} =~ /AnWeb|Omni|IIS\//i) { $www_server_os= 'win'; }
|
---|
43 | # Win Apache
|
---|
44 | if($ENV{'WINDIR'} ne "") { $www_server_os= 'win'; }
|
---|
45 | if($www_server_os=~ /win/i) { return(1); }
|
---|
46 | return(0);
|
---|
47 | }
|
---|
48 |
|
---|
49 | sub GetScriptPath {
|
---|
50 | local($path) = @_;
|
---|
51 | if($path =~ /[\:\/\\]/) { $path =~ s/(.*?)[\/\\][^\/\\]+$/$1/; } else { $path = '.'; }
|
---|
52 | $path;
|
---|
53 | }
|
---|
54 | ## END: Hack for IIS
|
---|
55 |
|
---|
56 | require 'util.pl';
|
---|
57 | require 'io.pl';
|
---|
58 | require 'basexml.pl';
|
---|
59 | require 'commands.pl';
|
---|
60 | require 'upload_fck.pl';
|
---|
61 | require 'config.pl';
|
---|
62 |
|
---|
63 | &read_input();
|
---|
64 | &DoResponse();
|
---|
65 |
|
---|
66 | sub DoResponse
|
---|
67 | {
|
---|
68 | # Get the main request information.
|
---|
69 | $sCommand = 'FileUpload';
|
---|
70 | $sResourceType = &specialchar_cnv($FORM{'Type'});
|
---|
71 | $sCurrentFolder = "/";
|
---|
72 |
|
---|
73 | if ($sResourceType eq '') {
|
---|
74 | $sResourceType = 'File' ;
|
---|
75 | }
|
---|
76 |
|
---|
77 | if ( !($sResourceType =~ /^(File|Image|Flash|Media)$/) ) {
|
---|
78 | SendError( 1, "Invalid type specified" ) ;
|
---|
79 | }
|
---|
80 |
|
---|
81 | # File Upload doesn't have to Return XML, so it must be intercepted before anything.
|
---|
82 | if($sCommand eq 'FileUpload') {
|
---|
83 | FileUpload($sResourceType,$sCurrentFolder);
|
---|
84 | return ;
|
---|
85 | }
|
---|
86 |
|
---|
87 | }
|
---|