upgrade fckeditor to ckeditor, for IE10 compatibility, RT#22014
[freeside.git] / httemplate / elements / fckeditor / editor / filemanager / connectors / perl / upload_fck.pl
diff --git a/httemplate/elements/fckeditor/editor/filemanager/connectors/perl/upload_fck.pl b/httemplate/elements/fckeditor/editor/filemanager/connectors/perl/upload_fck.pl
deleted file mode 100644 (file)
index debdad6..0000000
+++ /dev/null
@@ -1,686 +0,0 @@
-#####\r
-#  FCKeditor - The text editor for Internet - http://www.fckeditor.net\r
-#  Copyright (C) 2003-2010 Frederico Caldeira Knabben\r
-#\r
-#  == BEGIN LICENSE ==\r
-#\r
-#  Licensed under the terms of any of the following licenses at your\r
-#  choice:\r
-#\r
-#   - GNU General Public License Version 2 or later (the "GPL")\r
-#     http://www.gnu.org/licenses/gpl.html\r
-#\r
-#   - GNU Lesser General Public License Version 2.1 or later (the "LGPL")\r
-#     http://www.gnu.org/licenses/lgpl.html\r
-#\r
-#   - Mozilla Public License Version 1.1 or later (the "MPL")\r
-#     http://www.mozilla.org/MPL/MPL-1.1.html\r
-#\r
-#  == END LICENSE ==\r
-#\r
-#  This is the File Manager Connector for Perl.\r
-#####\r
-\r
-# image data save dir\r
-$img_dir       = './temp/';\r
-\r
-\r
-# File size max(unit KB)\r
-$MAX_CONTENT_SIZE =  30000;\r
-\r
-# After file is uploaded, sometimes it is required to change its permissions\r
-# so that it was possible to access it at the later time.\r
-# If possible, it is recommended to set more restrictive permissions, like 0755.\r
-# Set to 0 to disable this feature.\r
-$CHMOD_ON_UPLOAD = 0777;\r
-\r
-# See comments above.\r
-# Used when creating folders that does not exist.\r
-$CHMOD_ON_FOLDER_CREATE = 0755;\r
-\r
-# Filelock (1=use,0=not use)\r
-$PM{'flock'}           = '1';\r
-\r
-\r
-# upload Content-Type list\r
-my %UPLOAD_CONTENT_TYPE_LIST = (\r
-       'image/(x-)?png'                                                =>      'png',  # PNG image\r
-       'image/p?jpe?g'                                                 =>      'jpg',  # JPEG image\r
-       'image/gif'                                                             =>      'gif',  # GIF image\r
-       'image/x-xbitmap'                                               =>      'xbm',  # XBM image\r
-\r
-       'image/(x-(MS-)?)?bmp'                                  =>      'bmp',  # Windows BMP image\r
-       'image/pict'                                                    =>      'pict', # Macintosh PICT image\r
-       'image/tiff'                                                    =>      'tif',  # TIFF image\r
-       'application/pdf'                                               =>      'pdf',  # PDF image\r
-       'application/x-shockwave-flash'                 =>      'swf',  # Shockwave Flash\r
-\r
-       'video/(x-)?msvideo'                                    =>      'avi',  # Microsoft Video\r
-       'video/quicktime'                                               =>      'mov',  # QuickTime Video\r
-       'video/mpeg'                                                    =>      'mpeg', # MPEG Video\r
-       'video/x-mpeg2'                                                 =>      'mpv2', # MPEG2 Video\r
-\r
-       'audio/(x-)?midi?'                                              =>      'mid',  # MIDI Audio\r
-       'audio/(x-)?wav'                                                =>      'wav',  # WAV Audio\r
-       'audio/basic'                                                   =>      'au',   # ULAW Audio\r
-       'audio/mpeg'                                                    =>      'mpga', # MPEG Audio\r
-\r
-       'application/(x-)?zip(-compressed)?'    =>      'zip',  # ZIP Compress\r
-\r
-       'text/html'                                                             =>      'html', # HTML\r
-       'text/plain'                                                    =>      'txt',  # TEXT\r
-       '(?:application|text)/(?:rtf|richtext)' =>      'rtf',  # RichText\r
-\r
-       'application/msword'                                    =>      'doc',  # Microsoft Word\r
-       'application/vnd.ms-excel'                              =>      'xls',  # Microsoft Excel\r
-\r
-       ''\r
-);\r
-\r
-# Upload is permitted.\r
-# A regular expression is possible.\r
-my %UPLOAD_EXT_LIST = (\r
-       'png'                                   =>      'PNG image',\r
-       'p?jpe?g|jpe|jfif|pjp'  =>      'JPEG image',\r
-       'gif'                                   =>      'GIF image',\r
-       'xbm'                                   =>      'XBM image',\r
-\r
-       'bmp|dib|rle'                   =>      'Windows BMP image',\r
-       'pi?ct'                                 =>      'Macintosh PICT image',\r
-       'tiff?'                                 =>      'TIFF image',\r
-       'pdf'                                   =>      'PDF image',\r
-       'swf'                                   =>      'Shockwave Flash',\r
-\r
-       'avi'                                   =>      'Microsoft Video',\r
-       'moo?v|qt'                              =>      'QuickTime Video',\r
-       'm(p(e?gv?|e|v)|1v)'    =>      'MPEG Video',\r
-       'mp(v2|2v)'                             =>      'MPEG2 Video',\r
-\r
-       'midi?|kar|smf|rmi|mff' =>      'MIDI Audio',\r
-       'wav'                                   =>      'WAVE Audio',\r
-       'au|snd'                                =>      'ULAW Audio',\r
-       'mp(e?ga|2|a|3)|abs'    =>      'MPEG Audio',\r
-\r
-       'zip'                                   =>      'ZIP Compress',\r
-       'lzh'                                   =>      'LZH Compress',\r
-       'cab'                                   =>      'CAB Compress',\r
-\r
-       'd?html?'                               =>      'HTML',\r
-       'rtf|rtx'                               =>      'RichText',\r
-       'txt|text'                              =>      'Text',\r
-\r
-       ''\r
-);\r
-\r
-\r
-# sjis or euc\r
-my $CHARCODE = 'sjis';\r
-\r
-$TRANS_2BYTE_CODE = 0;\r
-\r
-##############################################################################\r
-# Summary\r
-#\r
-# Form Read input\r
-#\r
-# Parameters\r
-# Returns\r
-# Memo\r
-##############################################################################\r
-sub read_input\r
-{\r
-eval("use File::Copy;");\r
-eval("use File::Path;");\r
-\r
-       my ($FORM) = @_;\r
-\r
-       if (defined $CHMOD_ON_FOLDER_CREATE && !$CHMOD_ON_FOLDER_CREATE) {\r
-               mkdir("$img_dir");\r
-       }\r
-       else {\r
-               umask(000);\r
-               if (defined $CHMOD_ON_FOLDER_CREATE) {\r
-                       mkdir("$img_dir",$CHMOD_ON_FOLDER_CREATE);\r
-               }\r
-               else {\r
-                       mkdir("$img_dir",0777);\r
-               }\r
-       }\r
-\r
-       undef $img_data_exists;\r
-       undef @NEWFNAMES;\r
-       undef @NEWFNAME_DATA;\r
-\r
-       if($ENV{'CONTENT_LENGTH'} > 10000000 || $ENV{'CONTENT_LENGTH'} > $MAX_CONTENT_SIZE * 1024) {\r
-               &upload_error(\r
-                       'Size Error',\r
-                       sprintf(\r
-                               "Transmitting size is too large.MAX <strong>%d KB</strong> Now Size <strong>%d KB</strong>(<strong>%d bytes</strong> Over)",\r
-                               $MAX_CONTENT_SIZE,\r
-                               int($ENV{'CONTENT_LENGTH'} / 1024),\r
-                               $ENV{'CONTENT_LENGTH'} - $MAX_CONTENT_SIZE * 1024\r
-                       )\r
-               );\r
-       }\r
-\r
-       my $Buffer;\r
-       if($ENV{'CONTENT_TYPE'} =~ /multipart\/form-data/) {\r
-               # METHOD POST only\r
-               return  unless($ENV{'CONTENT_LENGTH'});\r
-\r
-               binmode(STDIN);\r
-               # STDIN A pause character is detected.'(MacIE3.0 boundary of $ENV{'CONTENT_TYPE'} cannot be trusted.)\r
-               my $Boundary = <STDIN>;\r
-               $Boundary =~ s/\x0D\x0A//;\r
-               $Boundary = quotemeta($Boundary);\r
-               while(<STDIN>) {\r
-                       if(/^\s*Content-Disposition:/i) {\r
-                               my($name,$ContentType,$FileName);\r
-                               # form data get\r
-                               if(/\bname="([^"]+)"/i || /\bname=([^\s:;]+)/i) {\r
-                                       $name = $1;\r
-                                       $name   =~ tr/+/ /;\r
-                                       $name   =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;\r
-                                       &Encode(\$name);\r
-                               }\r
-                               if(/\bfilename="([^"]*)"/i || /\bfilename=([^\s:;]*)/i) {\r
-                                       $FileName = $1 || 'unknown';\r
-                               }\r
-                               # head read\r
-                               while(<STDIN>) {\r
-                                       last    if(! /\w/);\r
-                                       if(/^\s*Content-Type:\s*"([^"]+)"/i || /^\s*Content-Type:\s*([^\s:;]+)/i) {\r
-                                               $ContentType = $1;\r
-                                       }\r
-                               }\r
-                               # body read\r
-                               $value = "";\r
-                               while(<STDIN>) {\r
-                                       last    if(/^$Boundary/o);\r
-                                       $value .= $_;\r
-                               };\r
-                               $lastline = $_;\r
-                               $value =~s /\x0D\x0A$//;\r
-                               if($value ne '') {\r
-                                       if($FileName || $ContentType) {\r
-                                               $img_data_exists = 1;\r
-                                               (\r
-                                                       $FileName,              #\r
-                                                       $Ext,                   #\r
-                                                       $Length,                #\r
-                                                       $ImageWidth,    #\r
-                                                       $ImageHeight,   #\r
-                                                       $ContentName    #\r
-                                               ) = &CheckContentType(\$value,$FileName,$ContentType);\r
-\r
-                                               $FORM{$name}    = $FileName;\r
-                                               $new_fname              = $FileName;\r
-                                               push(@NEWFNAME_DATA,"$FileName\t$Ext\t$Length\t$ImageWidth\t$ImageHeight\t$ContentName");\r
-\r
-                                               # Multi-upload correspondence\r
-                                               push(@NEWFNAMES,$new_fname);\r
-                                               open(OUT,">$img_dir/$new_fname");\r
-                                               binmode(OUT);\r
-                                               eval "flock(OUT,2);" if($PM{'flock'} == 1);\r
-                                               print OUT $value;\r
-                                               eval "flock(OUT,8);" if($PM{'flock'} == 1);\r
-                                               close(OUT);\r
-\r
-                                       } elsif($name) {\r
-                                               $value  =~ tr/+/ /;\r
-                                               $value  =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;\r
-                                               &Encode(\$value,'trans');\r
-                                               $FORM{$name} .= "\0"                    if(defined($FORM{$name}));\r
-                                               $FORM{$name} .= $value;\r
-                                       }\r
-                               }\r
-                       };\r
-                       last if($lastline =~ /^$Boundary\-\-/o);\r
-               }\r
-       } elsif($ENV{'CONTENT_LENGTH'}) {\r
-               read(STDIN,$Buffer,$ENV{'CONTENT_LENGTH'});\r
-       }\r
-       foreach(split(/&/,$Buffer),split(/&/,$ENV{'QUERY_STRING'})) {\r
-               my($name, $value) = split(/=/);\r
-               $name   =~ tr/+/ /;\r
-               $name   =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;\r
-               $value  =~ tr/+/ /;\r
-               $value  =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;\r
-\r
-               &Encode(\$name);\r
-               &Encode(\$value,'trans');\r
-               $FORM{$name} .= "\0"                    if(defined($FORM{$name}));\r
-               $FORM{$name} .= $value;\r
-\r
-       }\r
-\r
-}\r
-\r
-##############################################################################\r
-# Summary\r
-#\r
-#      CheckContentType\r
-#\r
-# Parameters\r
-# Returns\r
-# Memo\r
-##############################################################################\r
-sub CheckContentType\r
-{\r
-\r
-       my($DATA,$FileName,$ContentType) = @_;\r
-       my($Ext,$ImageWidth,$ImageHeight,$ContentName,$Infomation);\r
-       my $DataLength = length($$DATA);\r
-\r
-       # An unknown file type\r
-\r
-       $_ = $ContentType;\r
-       my $UnknownType = (\r
-               !$_\r
-               || /^application\/(x-)?macbinary$/i\r
-               || /^application\/applefile$/i\r
-               || /^application\/octet-stream$/i\r
-               || /^text\/plane$/i\r
-               || /^x-unknown-content-type/i\r
-       );\r
-\r
-       # MacBinary(Mac Unnecessary data are deleted.)\r
-       if($UnknownType || $ENV{'HTTP_USER_AGENT'} =~ /Macintosh|Mac_/) {\r
-               if($DataLength > 128 && !unpack("C",substr($$DATA,0,1)) && !unpack("C",substr($$DATA,74,1)) && !unpack("C",substr($$DATA,82,1)) ) {\r
-                       my $MacBinary_ForkLength = unpack("N", substr($$DATA, 83, 4));          # ForkLength Get\r
-                       my $MacBinary_FileName = quotemeta(substr($$DATA, 2, unpack("C",substr($$DATA, 1, 1))));\r
-                       if($MacBinary_FileName && $MacBinary_ForkLength && $DataLength >= $MacBinary_ForkLength + 128\r
-                                       && ($FileName =~ /$MacBinary_FileName/i || substr($$DATA,102,4) eq 'mBIN')) {   # DATA TOP 128byte MacBinary!!\r
-                               $$DATA                          = substr($$DATA,128,$MacBinary_ForkLength);\r
-                               my $ResourceLength      = $DataLength - $MacBinary_ForkLength - 128;\r
-                               $DataLength                     = $MacBinary_ForkLength;\r
-                       }\r
-               }\r
-       }\r
-\r
-       # A file name is changed into EUC.\r
-#      &jcode::convert(\$FileName,'euc',$FormCodeDefault);\r
-#      &jcode::h2z_euc(\$FileName);\r
-       $FileName =~ s/^.*\\//;                                 # Windows, Mac\r
-       $FileName =~ s/^.*\///;                                 # UNIX\r
-       $FileName =~ s/&/&amp;/g;\r
-       $FileName =~ s/"/&quot;/g;\r
-       $FileName =~ s/</&lt;/g;\r
-       $FileName =~ s/>/&gt;/g;\r
-#\r
-#      if($CHARCODE ne 'euc') {\r
-#              &jcode::convert(\$FileName,$CHARCODE,'euc');\r
-#      }\r
-\r
-       # An extension is extracted and it changes into a small letter.\r
-       my $FileExt;\r
-       if($FileName =~ /\.(\w+)$/) {\r
-               $FileExt = $1;\r
-               $FileExt =~ tr/A-Z/a-z/;\r
-       }\r
-\r
-       # Executable file detection (ban on upload)\r
-       if($$DATA =~ /^MZ/) {\r
-               $Ext = 'exe';\r
-       }\r
-       # text\r
-       if(!$Ext && ($UnknownType || $ContentType =~ /^text\//i || $ContentType =~ /^application\/(?:rtf|richtext)$/i || $ContentType =~ /^image\/x-xbitmap$/i)\r
-                               && ! $$DATA =~ /[\000-\006\177\377]/) {\r
-#              $$DATA =~ s/\x0D\x0A/\n/g;\r
-#              $$DATA =~ tr/\x0D\x0A/\n\n/;\r
-#\r
-#              if(\r
-#                      $$DATA =~ /<\s*SCRIPT(?:.|\n)*?>/i\r
-#                              || $$DATA =~ /<\s*(?:.|\n)*?\bONLOAD\s*=(?:.|\n)*?>/i\r
-#                              || $$DATA =~ /<\s*(?:.|\n)*?\bONCLICK\s*=(?:.|\n)*?>/i\r
-#                              ) {\r
-#                      $Infomation = '(JavaScript contains)';\r
-#              }\r
-#              if($$DATA =~ /<\s*TABLE(?:.|\n)*?>/i\r
-#                              || $$DATA =~ /<\s*BLINK(?:.|\n)*?>/i\r
-#                              || $$DATA =~ /<\s*MARQUEE(?:.|\n)*?>/i\r
-#                              || $$DATA =~ /<\s*OBJECT(?:.|\n)*?>/i\r
-#                              || $$DATA =~ /<\s*EMBED(?:.|\n)*?>/i\r
-#                              || $$DATA =~ /<\s*FRAME(?:.|\n)*?>/i\r
-#                              || $$DATA =~ /<\s*APPLET(?:.|\n)*?>/i\r
-#                              || $$DATA =~ /<\s*FORM(?:.|\n)*?>/i\r
-#                              || $$DATA =~ /<\s*(?:.|\n)*?\bSRC\s*=(?:.|\n)*?>/i\r
-#                              || $$DATA =~ /<\s*(?:.|\n)*?\bDYNSRC\s*=(?:.|\n)*?>/i\r
-#                              ) {\r
-#                      $Infomation = '(the HTML tag which is not safe is included)';\r
-#              }\r
-\r
-               if($FileExt =~ /^txt$/i || $FileExt =~ /^cgi$/i || $FileExt =~ /^pl$/i) {                                                               # Text File\r
-                       $Ext = 'txt';\r
-               } elsif($ContentType =~ /^text\/html$/i || $FileExt =~ /html?/i || $$DATA =~ /<\s*HTML(?:.|\n)*?>/i) {  # HTML File\r
-                       $Ext = 'html';\r
-               } elsif($ContentType =~ /^image\/x-xbitmap$/i || $FileExt =~ /^xbm$/i) {                                                                # XBM(x-BitMap) Image\r
-                       my $XbmName = $1;\r
-                       my ($XbmWidth, $XbmHeight);\r
-                       if($$DATA =~ /\#define\s*$XbmName\_width\s*(\d+)/i) {\r
-                               $XbmWidth = $1;\r
-                       }\r
-                       if($$DATA =~ /\#define\s*$XbmName\_height\s*(\d+)/i) {\r
-                               $XbmHeight = $1;\r
-                       }\r
-                       if($XbmWidth && $XbmHeight) {\r
-                               $Ext = 'xbm';\r
-                               $ImageWidth             = $XbmWidth;\r
-                               $ImageHeight    = $XbmHeight;\r
-                       }\r
-               } else {                #\r
-                       $Ext = 'txt';\r
-               }\r
-       }\r
-\r
-       # image\r
-       if(!$Ext && ($UnknownType || $ContentType =~ /^image\//i)) {\r
-               # PNG\r
-               if($$DATA =~ /^\x89PNG\x0D\x0A\x1A\x0A/) {\r
-                       if(substr($$DATA, 12, 4) eq 'IHDR') {\r
-                               $Ext = 'png';\r
-                               ($ImageWidth, $ImageHeight) = unpack("N2", substr($$DATA, 16, 8));\r
-                       }\r
-               } elsif($$DATA =~ /^GIF8(?:9|7)a/) {                                                                                                                    # GIF89a(modified), GIF89a, GIF87a\r
-                       $Ext = 'gif';\r
-                       ($ImageWidth, $ImageHeight) = unpack("v2", substr($$DATA, 6, 4));\r
-               } elsif($$DATA =~ /^II\x2a\x00\x08\x00\x00\x00/ || $$DATA =~ /^MM\x00\x2a\x00\x00\x00\x08/) {   # TIFF\r
-                       $Ext = 'tif';\r
-               } elsif($$DATA =~ /^BM/) {                                                                                                                                              # BMP\r
-                       $Ext = 'bmp';\r
-               } elsif($$DATA =~ /^\xFF\xD8\xFF/ || $$DATA =~ /JFIF/) {                                                                                # JPEG\r
-                       my $HeaderPoint = index($$DATA, "\xFF\xD8\xFF", 0);\r
-                       my $Point = $HeaderPoint + 2;\r
-                       while($Point < $DataLength) {\r
-                               my($Maker, $MakerType, $MakerLength) = unpack("C2n",substr($$DATA,$Point,4));\r
-                               if($Maker != 0xFF || $MakerType == 0xd9 || $MakerType == 0xda) {\r
-                                       last;\r
-                               } elsif($MakerType >= 0xC0 && $MakerType <= 0xC3) {\r
-                                       $Ext = 'jpg';\r
-                                       ($ImageHeight, $ImageWidth) = unpack("n2", substr($$DATA, $Point + 5, 4));\r
-                                       if($HeaderPoint > 0) {\r
-                                               $$DATA = substr($$DATA, $HeaderPoint);\r
-                                               $DataLength = length($$DATA);\r
-                                       }\r
-                                       last;\r
-                               } else {\r
-                                       $Point += $MakerLength + 2;\r
-                               }\r
-                       }\r
-               }\r
-       }\r
-\r
-       # audio\r
-       if(!$Ext && ($UnknownType || $ContentType =~ /^audio\//i)) {\r
-               # MIDI Audio\r
-               if($$DATA =~ /^MThd/) {\r
-                       $Ext = 'mid';\r
-               } elsif($$DATA =~ /^\x2esnd/) {         # ULAW Audio\r
-                       $Ext = 'au';\r
-               } elsif($$DATA =~ /^RIFF/ || $$DATA =~ /^ID3/ && $$DATA =~ /RIFF/) {\r
-                       my $HeaderPoint = index($$DATA, "RIFF", 0);\r
-                       $_ = substr($$DATA, $HeaderPoint + 8, 8);\r
-                       if(/^WAVEfmt $/) {\r
-                               # WAVE\r
-                               if(unpack("V",substr($$DATA, $HeaderPoint + 16, 4)) == 16) {\r
-                                       $Ext = 'wav';\r
-                               } else {                                        # RIFF WAVE MP3\r
-                                       $Ext = 'mp3';\r
-                               }\r
-                       } elsif(/^RMIDdata$/) {                 # RIFF MIDI\r
-                               $Ext = 'rmi';\r
-                       } elsif(/^RMP3data$/) {                 # RIFF MP3\r
-                               $Ext = 'rmp';\r
-                       }\r
-                       if($ContentType =~ /^audio\//i) {\r
-                               $Infomation .= '(RIFF '. substr($$DATA, $HeaderPoint + 8, 4). ')';\r
-                       }\r
-               }\r
-       }\r
-\r
-       # a binary file\r
-       unless ($Ext) {\r
-               # PDF image\r
-               if($$DATA =~ /^\%PDF/) {\r
-                       # Picture size is not measured.\r
-                       $Ext = 'pdf';\r
-               } elsif($$DATA =~ /^FWS/) {             # Shockwave Flash\r
-                       $Ext = 'swf';\r
-               } elsif($$DATA =~ /^RIFF/ || $$DATA =~ /^ID3/ && $$DATA =~ /RIFF/) {\r
-                       my $HeaderPoint = index($$DATA, "RIFF", 0);\r
-                       $_ = substr($$DATA,$HeaderPoint + 8, 8);\r
-                       # AVI\r
-                       if(/^AVI LIST$/) {\r
-                               $Ext = 'avi';\r
-                       }\r
-                       if($ContentType =~ /^video\//i) {\r
-                               $Infomation .= '(RIFF '. substr($$DATA, $HeaderPoint + 8, 4). ')';\r
-                       }\r
-               } elsif($$DATA =~ /^PK/) {                      # ZIP Compress File\r
-                       $Ext = 'zip';\r
-               } elsif($$DATA =~ /^MSCF/) {            # CAB Compress File\r
-                       $Ext = 'cab';\r
-               } elsif($$DATA =~ /^Rar\!/) {           # RAR Compress File\r
-                       $Ext = 'rar';\r
-               } elsif(substr($$DATA, 2, 5) =~ /^\-lh(\d+|d)\-$/) {            # LHA Compress File\r
-                       $Infomation .= "(lh$1)";\r
-                       $Ext = 'lzh';\r
-               } elsif(substr($$DATA, 325, 25) eq "Apple Video Media Handler" || substr($$DATA, 325, 30) eq "Apple \x83\x72\x83\x66\x83\x49\x81\x45\x83\x81\x83\x66\x83\x42\x83\x41\x83\x6E\x83\x93\x83\x68\x83\x89") {\r
-                       # QuickTime\r
-                       $Ext = 'mov';\r
-               }\r
-       }\r
-\r
-       # Header analysis failure\r
-       unless ($Ext) {\r
-               # It will be followed if it applies for the MIME type from the browser.\r
-               foreach (keys %UPLOAD_CONTENT_TYPE_LIST) {\r
-                       next unless ($_);\r
-                       if($ContentType =~ /^$_$/i) {\r
-                               $Ext = $UPLOAD_CONTENT_TYPE_LIST{$_};\r
-                               $ContentName = &CheckContentExt($Ext);\r
-                               if(\r
-                                       grep {$_ eq $Ext;} (\r
-                                               'png',\r
-                                               'gif',\r
-                                               'jpg',\r
-                                               'xbm',\r
-                                               'tif',\r
-                                               'bmp',\r
-                                               'pdf',\r
-                                               'swf',\r
-                                               'mov',\r
-                                               'zip',\r
-                                               'cab',\r
-                                               'lzh',\r
-                                               'rar',\r
-                                               'mid',\r
-                                               'rmi',\r
-                                               'au',\r
-                                               'wav',\r
-                                               'avi',\r
-                                               'exe'\r
-                                       )\r
-                               ) {\r
-                                       $Infomation .= ' / Header analysis failure';\r
-                               }\r
-                               if($Ext ne $FileExt && &CheckContentExt($FileExt) eq $ContentName) {\r
-                                       $Ext = $FileExt;\r
-                               }\r
-                               last;\r
-                       }\r
-               }\r
-               # a MIME type is unknown--It judges from an extension.\r
-               unless ($Ext) {\r
-                       $ContentName = &CheckContentExt($FileExt);\r
-                       if($ContentName) {\r
-                               $Ext = $FileExt;\r
-                               $Infomation .= ' /      MIME type is unknown('. $ContentType. ')';\r
-                               last;\r
-                       }\r
-               }\r
-       }\r
-\r
-#      $ContentName = &CheckContentExt($Ext)   unless($ContentName);\r
-#      if($Ext && $ContentName) {\r
-#              $ContentName .=  $Infomation;\r
-#      } else {\r
-#              &upload_error(\r
-#                      'Extension Error',\r
-#                      "$FileName A not corresponding extension ($Ext)<BR>The extension which can be responded ". join(',', sort values(%UPLOAD_EXT_LIST))\r
-#              );\r
-#      }\r
-\r
-#      # SSI Tag Deletion\r
-#      if($Ext =~ /.?html?/ && $$DATA =~ /<\!/) {\r
-#              foreach (\r
-#                      'config',\r
-#                      'echo',\r
-#                      'exec',\r
-#                      'flastmod',\r
-#                      'fsize',\r
-#                      'include'\r
-#              ) {\r
-#                      $$DATA =~ s/\#\s*$_/\&\#35\;$_/ig\r
-#              }\r
-#      }\r
-\r
-       return (\r
-               $FileName,\r
-               $Ext,\r
-               int($DataLength / 1024 + 1),\r
-               $ImageWidth,\r
-               $ImageHeight,\r
-               $ContentName\r
-       );\r
-}\r
-\r
-##############################################################################\r
-# Summary\r
-#\r
-# Extension discernment\r
-#\r
-# Parameters\r
-# Returns\r
-# Memo\r
-##############################################################################\r
-\r
-sub CheckContentExt\r
-{\r
-\r
-       my($Ext) = @_;\r
-       my $ContentName;\r
-       foreach (keys %UPLOAD_EXT_LIST) {\r
-               next    unless ($_);\r
-               if($_ && $Ext =~ /^$_$/) {\r
-                       $ContentName = $UPLOAD_EXT_LIST{$_};\r
-                       last;\r
-               }\r
-       }\r
-       return $ContentName;\r
-\r
-}\r
-\r
-##############################################################################\r
-# Summary\r
-#\r
-# Form decode\r
-#\r
-# Parameters\r
-# Returns\r
-# Memo\r
-##############################################################################\r
-sub Encode\r
-{\r
-\r
-       my($value,$Trans) = @_;\r
-\r
-#      my $FormCode = &jcode::getcode($value) || $FormCodeDefault;\r
-#      $FormCodeDefault ||= $FormCode;\r
-#\r
-#      if($Trans && $TRANS_2BYTE_CODE) {\r
-#              if($FormCode ne 'euc') {\r
-#                      &jcode::convert($value, 'euc', $FormCode);\r
-#              }\r
-#              &jcode::tr(\r
-#                      $value,\r
-#                      "\xA3\xB0-\xA3\xB9\xA3\xC1-\xA3\xDA\xA3\xE1-\xA3\xFA",\r
-#                      '0-9A-Za-z'\r
-#              );\r
-#              if($CHARCODE ne 'euc') {\r
-#                      &jcode::convert($value,$CHARCODE,'euc');\r
-#              }\r
-#      } else {\r
-#              if($CHARCODE ne $FormCode) {\r
-#                      &jcode::convert($value,$CHARCODE,$FormCode);\r
-#              }\r
-#      }\r
-#      if($CHARCODE eq 'euc') {\r
-#              &jcode::h2z_euc($value);\r
-#      } elsif($CHARCODE eq 'sjis') {\r
-#              &jcode::h2z_sjis($value);\r
-#      }\r
-\r
-}\r
-\r
-##############################################################################\r
-# Summary\r
-#\r
-# Error Msg\r
-#\r
-# Parameters\r
-# Returns\r
-# Memo\r
-##############################################################################\r
-\r
-sub upload_error\r
-{\r
-\r
-       local($error_message)   = $_[0];\r
-       local($error_message2)  = $_[1];\r
-\r
-       print "Content-type: text/html\n\n";\r
-       print<<EOF;\r
-<HTML>\r
-<HEAD>\r
-<TITLE>Error Message</TITLE></HEAD>\r
-<BODY>\r
-<table border="1" cellspacing="10" cellpadding="10">\r
-       <TR bgcolor="#0000B0">\r
-       <TD bgcolor="#0000B0" NOWRAP><font size="-1" color="white"><B>Error Message</B></font></TD>\r
-       </TR>\r
-</table>\r
-<UL>\r
-<H4> $error_message </H4>\r
-$error_message2 <BR>\r
-</UL>\r
-</BODY>\r
-</HTML>\r
-EOF\r
-       &rm_tmp_uploaded_files;                 # Image Temporary deletion\r
-       exit;\r
-}\r
-\r
-##############################################################################\r
-# Summary\r
-#\r
-# Image Temporary deletion\r
-#\r
-# Parameters\r
-# Returns\r
-# Memo\r
-##############################################################################\r
-\r
-sub rm_tmp_uploaded_files\r
-{\r
-       if($img_data_exists == 1){\r
-               sleep 1;\r
-               foreach $fname_list(@NEWFNAMES) {\r
-                       if(-e "$img_dir/$fname_list") {\r
-                               unlink("$img_dir/$fname_list");\r
-                       }\r
-               }\r
-       }\r
-\r
-}\r
-1;\r