upload_fck.pl
上传用户:wlfwy2004
上传日期:2016-12-12
资源大小:33978k
文件大小:18k
源码类别:

Jsp/Servlet

开发平台:

Java

  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. #  File Name: upload_fck.pl
  12. #   This is the File Manager Connector for Perl.
  13. #  
  14. #  File Authors:
  15. #   Takashi Yamaguchi (jack@omakase.net)
  16. #####
  17. # image data save dir
  18. $img_dir = './temp/';
  19. # File size max(unit KB)
  20. $MAX_CONTENT_SIZE =  30000;
  21. # Filelock (1=use,0=not use)
  22. $PM{'flock'} = '1';
  23. # upload Content-Type list
  24. my %UPLOAD_CONTENT_TYPE_LIST = (
  25. 'image/(x-)?png' => 'png', # PNG image
  26. 'image/p?jpe?g' => 'jpg', # JPEG image
  27. 'image/gif' => 'gif', # GIF image
  28. 'image/x-xbitmap' => 'xbm', # XBM image
  29. 'image/(x-(MS-)?)?bmp' => 'bmp', # Windows BMP image
  30. 'image/pict' => 'pict', # Macintosh PICT image
  31. 'image/tiff' => 'tif', # TIFF image
  32. 'application/pdf' => 'pdf', # PDF image
  33. 'application/x-shockwave-flash' => 'swf', # Shockwave Flash
  34. 'video/(x-)?msvideo' => 'avi', # Microsoft Video
  35. 'video/quicktime' => 'mov', # QuickTime Video
  36. 'video/mpeg' => 'mpeg', # MPEG Video
  37. 'video/x-mpeg2' => 'mpv2', # MPEG2 Video
  38. 'audio/(x-)?midi?' => 'mid', # MIDI Audio
  39. 'audio/(x-)?wav' => 'wav', # WAV Audio
  40. 'audio/basic' => 'au', # ULAW Audio
  41. 'audio/mpeg' => 'mpga', # MPEG Audio
  42. 'application/(x-)?zip(-compressed)?' => 'zip', # ZIP Compress
  43. 'text/html' => 'html', # HTML
  44. 'text/plain' => 'txt', # TEXT
  45. '(?:application|text)/(?:rtf|richtext)' => 'rtf', # RichText
  46. 'application/msword' => 'doc', # Microsoft Word
  47. 'application/vnd.ms-excel' => 'xls', # Microsoft Excel
  48. ''
  49. );
  50. # Upload is permitted.
  51. # A regular expression is possible.
  52. my %UPLOAD_EXT_LIST = (
  53. 'png' => 'PNG image',
  54. 'p?jpe?g|jpe|jfif|pjp' => 'JPEG image',
  55. 'gif' => 'GIF image',
  56. 'xbm' => 'XBM image',
  57. 'bmp|dib|rle' => 'Windows BMP image',
  58. 'pi?ct' => 'Macintosh PICT image',
  59. 'tiff?' => 'TIFF image',
  60. 'pdf' => 'PDF image',
  61. 'swf' => 'Shockwave Flash',
  62. 'avi' => 'Microsoft Video',
  63. 'moo?v|qt' => 'QuickTime Video',
  64. 'm(p(e?gv?|e|v)|1v)' => 'MPEG Video',
  65. 'mp(v2|2v)' => 'MPEG2 Video',
  66. 'midi?|kar|smf|rmi|mff' => 'MIDI Audio',
  67. 'wav' => 'WAVE Audio',
  68. 'au|snd' => 'ULAW Audio',
  69. 'mp(e?ga|2|a|3)|abs' => 'MPEG Audio',
  70. 'zip' => 'ZIP Compress',
  71. 'lzh' => 'LZH Compress',
  72. 'cab' => 'CAB Compress',
  73. 'd?html?' => 'HTML',
  74. 'rtf|rtx' => 'RichText',
  75. 'txt|text' => 'Text',
  76. ''
  77. );
  78. # sjis or euc
  79. my $CHARCODE = 'sjis';
  80. $TRANS_2BYTE_CODE = 0;
  81. ##############################################################################
  82. # Summary
  83. #
  84. # Form Read input
  85. #
  86. # Parameters
  87. # Returns
  88. # Memo
  89. ##############################################################################
  90. sub read_input
  91. {
  92. eval("use File::Copy;");
  93. eval("use File::Path;");
  94. my ($FORM) = @_;
  95. mkdir($img_dir,0777);
  96. chmod(0777,$img_dir);
  97. undef $img_data_exists;
  98. undef @NEWFNAMES;
  99. undef @NEWFNAME_DATA;
  100. if($ENV{'CONTENT_LENGTH'} > 10000000 || $ENV{'CONTENT_LENGTH'} > $MAX_CONTENT_SIZE * 1024) {
  101. &upload_error(
  102. 'Size Error',
  103. sprintf(
  104. "Transmitting size is too large.MAX <strong>%d KB</strong> Now Size <strong>%d KB</strong>(<strong>%d bytes</strong> Over)",
  105. $MAX_CONTENT_SIZE,
  106. int($ENV{'CONTENT_LENGTH'} / 1024),
  107. $ENV{'CONTENT_LENGTH'} - $MAX_CONTENT_SIZE * 1024
  108. )
  109. );
  110. }
  111. my $Buffer;
  112. if($ENV{'CONTENT_TYPE'} =~ /multipart/form-data/) {
  113. # METHOD POST only
  114. return unless($ENV{'CONTENT_LENGTH'});
  115. binmode(STDIN);
  116. # STDIN A pause character is detected.'(MacIE3.0 boundary of $ENV{'CONTENT_TYPE'} cannot be trusted.)
  117. my $Boundary = <STDIN>;
  118. $Boundary =~ s/x0Dx0A//;
  119. $Boundary = quotemeta($Boundary);
  120. while(<STDIN>) {
  121. if(/^s*Content-Disposition:/i) {
  122. my($name,$ContentType,$FileName);
  123. # form data get
  124. if(/bname="([^"]+)"/i || /bname=([^s:;]+)/i) {
  125. $name = $1;
  126. $name =~ tr/+/ /;
  127. $name =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
  128. &Encode($name);
  129. }
  130. if(/bfilename="([^"]*)"/i || /bfilename=([^s:;]*)/i) {
  131. $FileName = $1 || 'unknown';
  132. }
  133. # head read
  134. while(<STDIN>) {
  135. last if(! /w/);
  136. if(/^s*Content-Type:s*"([^"]+)"/i || /^s*Content-Type:s*([^s:;]+)/i) {
  137. $ContentType = $1;
  138. }
  139. }
  140. # body read
  141. $value = "";
  142. while(<STDIN>) {
  143. last if(/^$Boundary/o);
  144. $value .= $_;
  145. };
  146. $lastline = $_;
  147. $value =~s /x0Dx0A$//;
  148. if($value ne '') {
  149. if($FileName || $ContentType) {
  150. $img_data_exists = 1;
  151. (
  152. $FileName, #
  153. $Ext, #
  154. $Length, #
  155. $ImageWidth, #
  156. $ImageHeight, #
  157. $ContentName #
  158. ) = &CheckContentType($value,$FileName,$ContentType);
  159. $FORM{$name} = $FileName;
  160. $new_fname = $FileName;
  161. push(@NEWFNAME_DATA,"$FileNamet$Extt$Lengtht$ImageWidtht$ImageHeightt$ContentName");
  162. # Multi-upload correspondence
  163. push(@NEWFNAMES,$new_fname);
  164. open(OUT,">$img_dir/$new_fname");
  165. binmode(OUT);
  166. eval "flock(OUT,2);" if($PM{'flock'} == 1);
  167. print OUT $value;
  168. eval "flock(OUT,8);" if($PM{'flock'} == 1);
  169. close(OUT);
  170. } elsif($name) {
  171. $value =~ tr/+/ /;
  172. $value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
  173. &Encode($value,'trans');
  174. $FORM{$name} .= "" if(defined($FORM{$name}));
  175. $FORM{$name} .= $value;
  176. }
  177. }
  178. };
  179. last if($lastline =~ /^$Boundary--/o);
  180. }
  181. } elsif($ENV{'CONTENT_LENGTH'}) {
  182. read(STDIN,$Buffer,$ENV{'CONTENT_LENGTH'});
  183. }
  184. foreach(split(/&/,$Buffer),split(/&/,$ENV{'QUERY_STRING'})) {
  185. my($name, $value) = split(/=/);
  186. $name =~ tr/+/ /;
  187. $name =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
  188. $value =~ tr/+/ /;
  189. $value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
  190. &Encode($name);
  191. &Encode($value,'trans');
  192. $FORM{$name} .= "" if(defined($FORM{$name}));
  193. $FORM{$name} .= $value;
  194. }
  195. }
  196. ##############################################################################
  197. # Summary
  198. #
  199. # CheckContentType
  200. #
  201. # Parameters
  202. # Returns
  203. # Memo
  204. ##############################################################################
  205. sub CheckContentType
  206. {
  207. my($DATA,$FileName,$ContentType) = @_;
  208. my($Ext,$ImageWidth,$ImageHeight,$ContentName,$Infomation);
  209. my $DataLength = length($$DATA);
  210. # An unknown file type
  211. $_ = $ContentType;
  212. my $UnknownType = (
  213. !$_
  214. || /^application/(x-)?macbinary$/i
  215. || /^application/applefile$/i
  216. || /^application/octet-stream$/i
  217. || /^text/plane$/i
  218. || /^x-unknown-content-type/i
  219. );
  220. # MacBinary(Mac Unnecessary data are deleted.)
  221. if($UnknownType || $ENV{'HTTP_USER_AGENT'} =~ /Macintosh|Mac_/) {
  222. if($DataLength > 128 && !unpack("C",substr($$DATA,0,1)) && !unpack("C",substr($$DATA,74,1)) && !unpack("C",substr($$DATA,82,1)) ) {
  223. my $MacBinary_ForkLength = unpack("N", substr($$DATA, 83, 4)); # ForkLength Get
  224. my $MacBinary_FileName = quotemeta(substr($$DATA, 2, unpack("C",substr($$DATA, 1, 1))));
  225. if($MacBinary_FileName && $MacBinary_ForkLength && $DataLength >= $MacBinary_ForkLength + 128
  226. && ($FileName =~ /$MacBinary_FileName/i || substr($$DATA,102,4) eq 'mBIN')) { # DATA TOP 128byte MacBinary!!
  227. $$DATA = substr($$DATA,128,$MacBinary_ForkLength);
  228. my $ResourceLength = $DataLength - $MacBinary_ForkLength - 128;
  229. $DataLength = $MacBinary_ForkLength;
  230. }
  231. }
  232. }
  233. # A file name is changed into EUC.
  234. # &jcode::convert($FileName,'euc',$FormCodeDefault);
  235. # &jcode::h2z_euc($FileName);
  236. $FileName =~ s/^.*\//; # Windows, Mac
  237. $FileName =~ s/^.*///; # UNIX
  238. $FileName =~ s/&/&amp;/g;
  239. $FileName =~ s/"/&quot;/g;
  240. $FileName =~ s/</&lt;/g;
  241. $FileName =~ s/>/&gt;/g;
  242. #
  243. # if($CHARCODE ne 'euc') {
  244. # &jcode::convert($FileName,$CHARCODE,'euc');
  245. # }
  246. # An extension is extracted and it changes into a small letter.
  247. my $FileExt;
  248. if($FileName =~ /.(w+)$/) {
  249. $FileExt = $1;
  250. $FileExt =~ tr/A-Z/a-z/;
  251. }
  252. # Executable file detection (ban on upload)
  253. if($$DATA =~ /^MZ/) {
  254. $Ext = 'exe';
  255. }
  256. # text
  257. if(!$Ext && ($UnknownType || $ContentType =~ /^text//i || $ContentType =~ /^application/(?:rtf|richtext)$/i || $ContentType =~ /^image/x-xbitmap$/i)
  258. && ! $$DATA =~ /[00-06177377]/) {
  259. # $$DATA =~ s/x0Dx0A/n/g;
  260. # $$DATA =~ tr/x0Dx0A/nn/;
  261. #
  262. # if(
  263. # $$DATA =~ /<s*SCRIPT(?:.|n)*?>/i
  264. # || $$DATA =~ /<s*(?:.|n)*?bONLOADs*=(?:.|n)*?>/i
  265. # || $$DATA =~ /<s*(?:.|n)*?bONCLICKs*=(?:.|n)*?>/i
  266. # ) {
  267. # $Infomation = '(JavaScript contains)';
  268. # }
  269. # if($$DATA =~ /<s*TABLE(?:.|n)*?>/i
  270. # || $$DATA =~ /<s*BLINK(?:.|n)*?>/i
  271. # || $$DATA =~ /<s*MARQUEE(?:.|n)*?>/i
  272. # || $$DATA =~ /<s*OBJECT(?:.|n)*?>/i
  273. # || $$DATA =~ /<s*EMBED(?:.|n)*?>/i
  274. # || $$DATA =~ /<s*FRAME(?:.|n)*?>/i
  275. # || $$DATA =~ /<s*APPLET(?:.|n)*?>/i
  276. # || $$DATA =~ /<s*FORM(?:.|n)*?>/i
  277. # || $$DATA =~ /<s*(?:.|n)*?bSRCs*=(?:.|n)*?>/i
  278. # || $$DATA =~ /<s*(?:.|n)*?bDYNSRCs*=(?:.|n)*?>/i
  279. # ) {
  280. # $Infomation = '(the HTML tag which is not safe is included)';
  281. # }
  282. if($FileExt =~ /^txt$/i || $FileExt =~ /^cgi$/i || $FileExt =~ /^pl$/i) { # Text File
  283. $Ext = 'txt';
  284. } elsif($ContentType =~ /^text/html$/i || $FileExt =~ /html?/i || $$DATA =~ /<s*HTML(?:.|n)*?>/i) { # HTML File
  285. $Ext = 'html';
  286. } elsif($ContentType =~ /^image/x-xbitmap$/i || $FileExt =~ /^xbm$/i) { # XBM(x-BitMap) Image
  287. my $XbmName = $1;
  288. my ($XbmWidth, $XbmHeight);
  289. if($$DATA =~ /#defines*$XbmName_widths*(d+)/i) {
  290. $XbmWidth = $1;
  291. }
  292. if($$DATA =~ /#defines*$XbmName_heights*(d+)/i) {
  293. $XbmHeight = $1;
  294. }
  295. if($XbmWidth && $XbmHeight) {
  296. $Ext = 'xbm';
  297. $ImageWidth = $XbmWidth;
  298. $ImageHeight = $XbmHeight;
  299. }
  300. } else { # 
  301. $Ext = 'txt';
  302. }
  303. }
  304. # image
  305. if(!$Ext && ($UnknownType || $ContentType =~ /^image//i)) {
  306. # PNG
  307. if($$DATA =~ /^x89PNGx0Dx0Ax1Ax0A/) {
  308. if(substr($$DATA, 12, 4) eq 'IHDR') {
  309. $Ext = 'png';
  310. ($ImageWidth, $ImageHeight) = unpack("N2", substr($$DATA, 16, 8));
  311. }
  312. } elsif($$DATA =~ /^GIF8(?:9|7)a/) { # GIF89a(modified), GIF89a, GIF87a
  313. $Ext = 'gif';
  314. ($ImageWidth, $ImageHeight) = unpack("v2", substr($$DATA, 6, 4));
  315. } elsif($$DATA =~ /^IIx2ax00x08x00x00x00/ || $$DATA =~ /^MMx00x2ax00x00x00x08/) { # TIFF
  316. $Ext = 'tif';
  317. } elsif($$DATA =~ /^BM/) { # BMP
  318. $Ext = 'bmp';
  319. } elsif($$DATA =~ /^xFFxD8xFF/ || $$DATA =~ /JFIF/) { # JPEG
  320. my $HeaderPoint = index($$DATA, "xFFxD8xFF", 0);
  321. my $Point = $HeaderPoint + 2;
  322. while($Point < $DataLength) {
  323. my($Maker, $MakerType, $MakerLength) = unpack("C2n",substr($$DATA,$Point,4));
  324. if($Maker != 0xFF || $MakerType == 0xd9 || $MakerType == 0xda) {
  325. last;
  326. } elsif($MakerType >= 0xC0 && $MakerType <= 0xC3) {
  327. $Ext = 'jpg';
  328. ($ImageHeight, $ImageWidth) = unpack("n2", substr($$DATA, $Point + 5, 4));
  329. if($HeaderPoint > 0) {
  330. $$DATA = substr($$DATA, $HeaderPoint);
  331. $DataLength = length($$DATA);
  332. }
  333. last;
  334. } else {
  335. $Point += $MakerLength + 2;
  336. }
  337. }
  338. }
  339. }
  340. # audio
  341. if(!$Ext && ($UnknownType || $ContentType =~ /^audio//i)) {
  342. # MIDI Audio
  343. if($$DATA =~ /^MThd/) {
  344. $Ext = 'mid';
  345. } elsif($$DATA =~ /^x2esnd/) { # ULAW Audio
  346. $Ext = 'au';
  347. } elsif($$DATA =~ /^RIFF/ || $$DATA =~ /^ID3/ && $$DATA =~ /RIFF/) {
  348. my $HeaderPoint = index($$DATA, "RIFF", 0);
  349. $_ = substr($$DATA, $HeaderPoint + 8, 8);
  350. if(/^WAVEfmt $/) {
  351. # WAVE
  352. if(unpack("V",substr($$DATA, $HeaderPoint + 16, 4)) == 16) {
  353. $Ext = 'wav';
  354. } else { # RIFF WAVE MP3
  355. $Ext = 'mp3';
  356. }
  357. } elsif(/^RMIDdata$/) { # RIFF MIDI
  358. $Ext = 'rmi';
  359. } elsif(/^RMP3data$/) { # RIFF MP3
  360. $Ext = 'rmp';
  361. }
  362. if($ContentType =~ /^audio//i) {
  363. $Infomation .= '(RIFF '. substr($$DATA, $HeaderPoint + 8, 4). ')';
  364. }
  365. }
  366. }
  367. # a binary file
  368. unless ($Ext) {
  369. # PDF image
  370. if($$DATA =~ /^%PDF/) {
  371. # Picture size is not measured.
  372. $Ext = 'pdf';
  373. } elsif($$DATA =~ /^FWS/) { # Shockwave Flash
  374. $Ext = 'swf';
  375. } elsif($$DATA =~ /^RIFF/ || $$DATA =~ /^ID3/ && $$DATA =~ /RIFF/) {
  376. my $HeaderPoint = index($$DATA, "RIFF", 0);
  377. $_ = substr($$DATA,$HeaderPoint + 8, 8);
  378. # AVI
  379. if(/^AVI LIST$/) {
  380. $Ext = 'avi';
  381. }
  382. if($ContentType =~ /^video//i) {
  383. $Infomation .= '(RIFF '. substr($$DATA, $HeaderPoint + 8, 4). ')';
  384. }
  385. } elsif($$DATA =~ /^PK/) { # ZIP Compress File
  386. $Ext = 'zip';
  387. } elsif($$DATA =~ /^MSCF/) { # CAB Compress File
  388. $Ext = 'cab';
  389. } elsif($$DATA =~ /^Rar!/) { # RAR Compress File
  390. $Ext = 'rar';
  391. } elsif(substr($$DATA, 2, 5) =~ /^-lh(d+|d)-$/) { # LHA Compress File
  392. $Infomation .= "(lh$1)";
  393. $Ext = 'lzh';
  394. } elsif(substr($$DATA, 325, 25) eq "Apple Video Media Handler" || substr($$DATA, 325, 30) eq "Apple x83x72x83x66x83x49x81x45x83x81x83x66x83x42x83x41x83x6Ex83x93x83x68x83x89") {
  395. # QuickTime
  396. $Ext = 'mov';
  397. }
  398. }
  399. # Header analysis failure
  400. unless ($Ext) {
  401. # It will be followed if it applies for the MIME type from the browser.
  402. foreach (keys %UPLOAD_CONTENT_TYPE_LIST) {
  403. next unless ($_);
  404. if($ContentType =~ /^$_$/i) {
  405. $Ext = $UPLOAD_CONTENT_TYPE_LIST{$_};
  406. $ContentName = &CheckContentExt($Ext);
  407. if(
  408. grep {$_ eq $Ext;} (
  409. 'png',
  410. 'gif',
  411. 'jpg',
  412. 'xbm',
  413. 'tif',
  414. 'bmp',
  415. 'pdf',
  416. 'swf',
  417. 'mov',
  418. 'zip',
  419. 'cab',
  420. 'lzh',
  421. 'rar',
  422. 'mid',
  423. 'rmi',
  424. 'au',
  425. 'wav',
  426. 'avi',
  427. 'exe'
  428. )
  429. ) {
  430. $Infomation .= ' / Header analysis failure';
  431. }
  432. if($Ext ne $FileExt && &CheckContentExt($FileExt) eq $ContentName) {
  433. $Ext = $FileExt;
  434. }
  435. last;
  436. }
  437. }
  438. # a MIME type is unknown--It judges from an extension.
  439. unless ($Ext) {
  440. $ContentName = &CheckContentExt($FileExt);
  441. if($ContentName) {
  442. $Ext = $FileExt;
  443. $Infomation .= ' / MIME type is unknown('. $ContentType. ')';
  444. last;
  445. }
  446. }
  447. }
  448. # $ContentName = &CheckContentExt($Ext) unless($ContentName);
  449. # if($Ext && $ContentName) {
  450. # $ContentName .=  $Infomation;
  451. # } else {
  452. # &upload_error(
  453. # 'Extension Error',
  454. # "$FileName A not corresponding extension ($Ext)<BR>The extension which can be responded ". join(',', sort values(%UPLOAD_EXT_LIST))
  455. # );
  456. # }
  457. # # SSI Tag Deletion
  458. # if($Ext =~ /.?html?/ && $$DATA =~ /<!/) {
  459. # foreach (
  460. # 'config',
  461. # 'echo',
  462. # 'exec',
  463. # 'flastmod',
  464. # 'fsize',
  465. # 'include'
  466. # ) {
  467. # $$DATA =~ s/#s*$_/&#35;$_/ig
  468. # }
  469. # }
  470. return (
  471. $FileName,
  472. $Ext,
  473. int($DataLength / 1024 + 1),
  474. $ImageWidth,
  475. $ImageHeight,
  476. $ContentName
  477. );
  478. }
  479. ##############################################################################
  480. # Summary
  481. #
  482. # Extension discernment
  483. #
  484. # Parameters
  485. # Returns
  486. # Memo
  487. ##############################################################################
  488. sub CheckContentExt
  489. {
  490. my($Ext) = @_;
  491. my $ContentName;
  492. foreach (keys %UPLOAD_EXT_LIST) {
  493. next unless ($_);
  494. if($_ && $Ext =~ /^$_$/) {
  495. $ContentName = $UPLOAD_EXT_LIST{$_};
  496. last;
  497. }
  498. }
  499. return $ContentName;
  500. }
  501. ##############################################################################
  502. # Summary
  503. #
  504. # Form decode
  505. #
  506. # Parameters
  507. # Returns
  508. # Memo
  509. ##############################################################################
  510. sub Encode
  511. {
  512. my($value,$Trans) = @_;
  513. # my $FormCode = &jcode::getcode($value) || $FormCodeDefault;
  514. # $FormCodeDefault ||= $FormCode;
  515. #
  516. # if($Trans && $TRANS_2BYTE_CODE) {
  517. # if($FormCode ne 'euc') {
  518. # &jcode::convert($value, 'euc', $FormCode);
  519. # }
  520. # &jcode::tr(
  521. # $value,
  522. # "xA3xB0-xA3xB9xA3xC1-xA3xDAxA3xE1-xA3xFA",
  523. # '0-9A-Za-z'
  524. # );
  525. # if($CHARCODE ne 'euc') {
  526. # &jcode::convert($value,$CHARCODE,'euc');
  527. # }
  528. # } else {
  529. # if($CHARCODE ne $FormCode) {
  530. # &jcode::convert($value,$CHARCODE,$FormCode);
  531. # }
  532. # }
  533. # if($CHARCODE eq 'euc') {
  534. # &jcode::h2z_euc($value);
  535. # } elsif($CHARCODE eq 'sjis') {
  536. # &jcode::h2z_sjis($value);
  537. # }
  538. }
  539. ##############################################################################
  540. # Summary
  541. #
  542. # Error Msg
  543. #
  544. # Parameters
  545. # Returns
  546. # Memo
  547. ##############################################################################
  548. sub upload_error
  549. {
  550. local($error_message) = $_[0];
  551. local($error_message2) = $_[1];
  552. print "Content-type: text/htmlnn";
  553. print<<EOF;
  554. <HTML>
  555. <HEAD>
  556. <TITLE>Error Message</TITLE></HEAD>
  557. <BODY>
  558. <table border="1" cellspacing="10" cellpadding="10">
  559. <TR bgcolor="#0000B0">
  560. <TD bgcolor="#0000B0" NOWRAP><font size="-1" color="white"><B>Error Message</B></font></TD>
  561. </TR>
  562. </table>
  563. <UL>
  564. <H4> $error_message </H4>
  565. $error_message2 <BR>
  566. </UL>
  567. </BODY>
  568. </HTML>
  569. EOF
  570. &rm_tmp_uploaded_files;  # Image Temporary deletion
  571. exit;
  572. }
  573. ##############################################################################
  574. # Summary
  575. #
  576. # Image Temporary deletion
  577. #
  578. # Parameters
  579. # Returns
  580. # Memo
  581. ##############################################################################
  582. sub rm_tmp_uploaded_files
  583. {
  584. if($img_data_exists == 1){
  585. sleep 1;
  586. foreach $fname_list(@NEWFNAMES) {
  587. if(-e "$img_dir/$fname_list") {
  588. unlink("$img_dir/$fname_list");
  589. }
  590. }
  591. }
  592. }
  593. 1;