upload_fck.pl
上传用户:ah_jiwei
上传日期:2022-07-24
资源大小:54044k
文件大小:18k
源码类别:

数据库编程

开发平台:

Visual C++

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