HANYANG_REACT/lib/base/upload.class.php

381 lines
12 KiB
PHP

<?php
/**
* Made By Frody: ffrody@gmail.com (H.S.Choi)
*
* 본인 이외에 복제/사용 금지
*/
namespace Frody\Util;
Class MultiFileUpload {
static public function swfFormFileInfo($fileids, $target_dir, $info_unlink="D"){
if( !preg_match("/\/$/",$target_dir) ) {
$target_dir = $target_dir . "/";
}
$k = 0;
$upfiles = array();
foreach( (array)$fileids as $cid => $fileid ) {
if (file_exists($target_dir . $fileid . ".info")) {
$fp = fopen($target_dir . $fileid . ".info", "r");
while (($line = fgets($fp, 4096)) !== false) {
$tmp = explode(":", $line);
$upfiles[$k][$tmp[0]] = chop($tmp[1]);
}
if( $upfiles[$k]['error'] ){ //등록시 오류가 발생한 경우 제외
unset($upfiles[$k]);
continue;
}
$upfiles[$k]['tmp_text'] = $fileid;
$upfiles[$k]['tmp_name'] = $target_dir . $fileid;
fclose($fp);
$k++;
if ($info_unlink == "D") { // 같은 자리에서 계속 등록을 할 경우 중복등록 방지용으로 삭제를 한다.
unlink($target_dir . $fileid . ".info");
}
}
}
return $upfiles;
}
static function swfInfoSaveFile($ufile){
$fileinfo["tmp_name"] = $ufile["tmp_name"];
$fileinfo["name"] = $ufile["name"];
$fileinfo["size"] = $ufile["size"];
$fileinfo["type"] = $ufile["type"];
$fileinfo['width'] = 0;
$fileinfo['height'] = 0;
$fileinfo["error"] = $ufile["error"];
if( strpos($ufile['type'], "image") !== false ){
$iinfo = getimagesize($ufile["tmp_name"]);
$fileinfo['width'] = $iinfo[0];
$fileinfo['height'] = $iinfo[1];
}
return $fileinfo;
}
static function swfFormSaveFile($ufile, $target_dir, $temp_id=""){
if( !preg_match("/\/$/",$target_dir) ) {
$target_dir = $target_dir . "/";
}
if( $temp_id ){
$fileid = $temp_id;
}else{
$fileid = uniqid("tmpfile_");
}
@move_uploaded_file($ufile["tmp_name"], $target_dir . $fileid);
$ufile['width'] = 0;
$ufile['height'] = 0;
if( strpos($ufile['type'], "image") !== false ){
$iinfo = getimagesize($target_dir . $fileid);
$ufile['width'] = $iinfo[0];
$ufile['height'] = $iinfo[1];
}
$fp = fopen($target_dir . $fileid . ".info","w+");
fputs($fp, "name:". $ufile["name"]."\r\n");
fputs($fp, "size:". $ufile["size"]."\r\n");
fputs($fp, "type:". $ufile["type"]."\r\n");
fputs($fp, "width:". $ufile["width"]."\r\n");
fputs($fp, "height:". $ufile["height"]."\r\n");
fputs($fp, "error:". $ufile["error"]."\r\n");
fclose($fp);
return $fileid;
}
static function swfMoveUploadedFile($src, $tgt){
rename($src, $tgt);
}
static function swfSaveFile($ufile, $sfile){
@move_uploaded_file($ufile["tmp_name"], $sfile);
$upfiles['name'] = $ufile['name'];
$upfiles['size'] = $ufile['size'];
return json_encode($upfiles);
}
static function swfCleanDir($target_dir){
if( !is_dir($target_dir) ) return;
$dp = opendir($target_dir);
if( !preg_match("/\/$/",$target_dir) ) {
$target_dir = $target_dir . "/";
}
while(false !== ($file = readdir($dp))) {
if ($file != "." && $file != "..") {
$ftime = filectime($target_dir.$file);
if( $ftime < time()-3600*24 ){
@unlink($target_dir.$file);
}
}
}
}
static public function mime_type( $file_ext ){
switch ( $file_ext )
{
case "doc" : $mime_type = "application/msword";
break;
case "xls" :
case "xlw" :
case "xla" :
case "xlc" :
case "xlm" :
case "xlt" : $mime_type= "application/vnd.ms-excel";
break;
case "ppt" :
case "pps" :
case "pot" : $mime_type= "application/vnd.ms-powerpoint";
break;
case "mpp" : $mime_type= "application/vnd.ms-project";
break;
case "mdb" : $mime_type= "application/x-msaccess";
break;
case "pub" : $mime_type= "application/x-mspublisher";
break;
case "scd" : $mime_type= "application/x-msschedule";
break;
case "hlp" : $mime_type= "application/winhlp";
break;
case "crd" : $mime_type= "application/x-mscardfile";
break;
case "clp" : $mime_type= "application/x-msclip";
break;
case "m13" :
case "m14" : $mime_type= "application/x-msmediaview ";
break;
case "wmf" : $mime_type= "application/x-msmetafile";
break;
case "mny" : $mime_type= "application/x-msmoney";
break;
case "trm" : $mime_type= "application/x-msterminal";
break;
case "wri" : $mime_type= "application/x-mswrite";
break;
case "bin" :
case "exe" :
case "com" : $mime_type= "application/octet-stream";
break;
case "asd" :
case "asn" : $mime_type= "application/astound";
break;
case "lcc" : $mime_type= "application/fastman";
break;
case "hqx" : $mime_type= "application/mac-binhex40";
break;
case "mbd" : $mime_type= "application/mbedlet";
break;
case "oda" : $mime_type= "application/oda";
break;
case "pdf" : $mime_type= "application/pdf";
break;
case "ai" :
case "eps" :
case "ps" : $mime_type= "application/postscript";
break;
case "rtf" : $mime_type= "application/rtf";
break;
case "smp" : $mime_type= "application/studiom";
break;
case "tbt" : $mime_type= "application/timbuktu";
break;
case "js" : $mime_type= "application/x-javascript";
break;
case "asp" : $mime_type= "application/x-asap";
break;
case "csh" : $mime_type= "application/x-csh";
break;
case "dot" : $mime_type= "application/x-dot";
break;
case "dvi" : $mime_type= "application/x-dvi";
break;
case "etc" : $mime_type= "application/x-earthtime";
break;
case "evy" : $mime_type= "application/x-envoy";
break;
case "xll" : $mime_type= "application/x-excel";
break;
case "gtar" : $mime_type= "application/x-gtar";
break;
case "hdf" : $mime_type= "application/x-hdf";
break;
case "latex" : $mime_type= "application/x-latex";
break;
case "fm" : $mime_type= "application/x-maker";
break;
case "mi" :
case "mif" : $mime_type= "application/x-mif";
break;
case "mocha" :
case "moc" : $mime_type= "application/x-mocha";
break;
case "ins" : $mime_type= "application/x-NET-Install";
break;
case "nc" :
case "cdf" : $mime_type= "application/x-netcdf";
break;
case "proxy" : $mime_type= "application/x-ns-proxy-autoconfig";
break;
case "css" : $mime_type= "application/x-pointplus";
break;
case "slc" : $mime_type= "application/x-salsa";
break;
case "sh" : $mime_type= "application/x-sh";
break;
case "shar" : $mime_type= "application/x-shar";
break;
case "spr" :
case "sprite" : $mime_type= "application/x-sprite";
break;
case "tar" : $mime_type= "application/x-tar";
break;
case "tcl" : $mime_type= "application/x-tcl";
break;
case "tex" : $mime_type= "application/x-tex";
break;
case "texi" :
case "texinfo" : $mime_type= "application/x-texinfo";
break;
case "tbp" : $mime_type= "application/x-timbuktu";
break;
case "tki" :
case "tkined" : $mime_type= "application/x-tkined";
break;
case "man" : $mime_type= "application/x-troff-man";
break;
case "me" : $mime_type= "application/x-troff-me";
break;
case "ms" : $mime_type= "application/x-troff-ms";
break;
case "t" :
case "tr" :
case "roff" : $mime_type= "application/x-troff";
break;
case "src" : $mime_type= "application/x-wais-source";
break;
case "zip" : $mime_type= "application/zip";
break;
case "hwp" : $mime_type= "application/hwp";
break;
case "au" :
case "snd" : $mime_type= "audio/basic";
break;
case "es" :
case "esl" : $mime_type= "audio/echospeech";
break;
case "midi" :
case "mid" : $mime_type= "audio/midi";
break;
case "aif" :
case "aiff" :
case "aifc" : $mime_type= "audio/x-aiff";
break;
case "wav" : $mime_type= "audio/x-wav";
break;
case "ra" :
case "ram" : $mime_type= "audio/x-pn-realaudio";
break;
case "pac" : $mime_type= "audio/x-pac";
break;
case "pae" : $mime_type= "audio/x-epac";
break;
case "fif" : $mime_type= "image/fif";
break;
case "gif" : $mime_type= "image/gif";
break;
case "ief" : $mime_type= "image/ief";
break;
case "ifs" : $mime_type= "image/ifs";
break;
case "jpg" :
case "jpe" :
case "jpeg" : $mime_type= "image/jpeg";
break;
case "png" : $mime_type= "image/png";
break;
case "tif" :
case "tiff" : $mime_type= "image/tiff";
break;
case "dwg" :
case "svf" : $mime_type= "image/vnd";
break;
case "wi" : $mime_type= "image/wavelet";
break;
case "bmp" : $mime_type= "image/bmp";
break;
case "ras" : $mime_type= "image/x-cmu-raster";
break;
case "pnm" : $mime_type= "image/x-portable-anymap";
break;
case "pbm" : $mime_type= "image/x-portable-bitmap";
break;
case "pgm" : $mime_type= "image/x-portable-graymap";
break;
case "ppm" : $mime_type= "image/x-portable-pixmap";
break;
case "rgb" : $mime_type= "image/x-rgb";
break;
case "xbm" : $mime_type= "image/x-xbitmap";
break;
case "xpm" : $mime_type= "image/x-xpixmap";
break;
case "xwd" : $mime_type= "image/x-xwindowdump";
break;
case "htm" :
case "html" : $mime_type= "text/html";
break;
case "txt" : $mime_type= "text/plain";
break;
case "rtx" : $mime_type= "text/richtext";
break;
case "tsv" : $mime_type= "text/tab-separated-values";
break;
case "etx" : $mime_type= "text/x-setext";
break;
case "talk" : $mime_type= "text/x-speech";
break;
case "fvi" : $mime_type= "video/isivideo";
break;
case "mpg" :
case "mpe" :
case "mpeg" : $mime_type= "video/mpeg";
break;
case "avi" : $mime_type= "video/msvideo";
break;
case "qt" :
case "mov" : $mime_type= "video/quicktime";
break;
case "viv" :
case "vivo" : $mime_type= "video/vivo";
break;
case "wv" : $mime_type= "video/wavelet";
break;
case "movie" : $mime_type= "video/x-sgi-movie";
break;
case "svr" : $mime_type= "x-world/x-svr";
break;
case "wrl" : $mime_type= "x-world/x-vrml";
break;
case "vrt" : $mime_type= "x-world/x-vrt";
break;
case "ice" : $mime_type= "x-conference/x-cooltalk";
break;
case "gz" : $mime_type= "x-gzip";
break;
case "z" : $mime_type= "x-compress";
break;
case "uue" :
case "uu" : $mime_type= "x-uuencode";
break;
case "map" : $mime_type= "magnus-internal/imagemap";
break;
case "shtml" : $mime_type= "magnus-internal/parsed-html";
break;
case "bat" :
case "cgi" : $mime_type= "magnus-internal/cgi";
break;
default :
$mime_type= "application/octet-stream";
}
return $mime_type;
}
}
?>