upload_fck.pl
上传用户:li2971742
上传日期:2021-11-18
资源大小:39096k
文件大小:18k
源码类别:

OA系统

开发平台:

C#

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