mime_content_type (PHP 4 >= 4.3.0, PHP 5)

이 함수는 단순히 파일의 확장자를 기초로 파일타입을 출력합니다.
예로 myimage.bmp가 있다면 실제 그림타입이 jpg이지만 bmp타입을 출력할 것입니다.

string
mime_content_type ( string $filename )

 <?php
 
function user_mime_content_type($filename
)
 {
   if(!
function_exists('mime_content_type'
))
   {
      
$type 
= array(
      
'txt' => 'text/plain'
,
      
'htm' => 'text/html'
,
      
'html' => 'text/html'
,
      
'php' => 'text/html'
,
      
'css' => 'text/css'
,
      
'js' => 'application/javascript'
,
      
'json' => 'application/json'
,
      
'xml' => 'application/xml'
,
      
'swf' => 'application/x-shockwave-flash'
,
      
'flv' => 'video/x-flv'
,

      
// images
      
'png' => 'image/png'
,
      
'jpe' => 'image/jpeg'
,
      
'jpeg' => 'image/jpeg'
,
      
'jpg' => 'image/jpeg'
,
      
'gif' => 'image/gif'
,
      
'bmp' => 'image/bmp'
,
      
'ico' => 'image/vnd.microsoft.icon'
,
      
'tiff' => 'image/tiff'
,
      
'tif' => 'image/tiff'
,
      
'svg' => 'image/svg+xml'
,
      
'svgz' => 'image/svg+xml'
,
     
      
// archives
      
'zip' => 'application/zip'
,
      
'rar' => 'application/x-rar-compressed'
,
      
'exe' => 'application/x-msdownload'
,
      
'msi' => 'application/x-msdownload'
,
      
'cab' => 'application/vnd.ms-cab-compressed'
,
     
      
// audio/video
      
'mp3' => 'audio/mpeg'
,
      
'qt' => 'video/quicktime'
,
       
'mov' => 'video/quicktime'
,
    
      
// adobe
      
'pdf' => 'application/pdf'
,
      
'psd' => 'image/vnd.adobe.photoshop'
,
      
'ai' => 'application/postscript'
,
      
'eps' => 'application/postscript'
,
      
'ps' => 'application/postscript'
,

      
// ms office
      
'doc' => 'application/msword'
,
      
'rtf' => 'application/rtf'
,
      
'xls' => 'application/vnd.ms-excel'
,
      
'ppt' => 'application/vnd.ms-powerpoint'
,
    
      
// open office
      
'odt'=>'application/vnd.oasis.opendocument.text'
,
      
'ods'=>'application/vnd.oasis.opendocument.spreadsheet'
,
     );
     
$ext strtolower(array_pop(explode('.',$filename
)));
     if (
array_key_exists($ext$type
))
     {
         return 
$type[$ext
];
      }
      elseif (
function_exists('finfo_open'
))
     {
         
$finfo finfo_open(FILEINFO_MIME
);
         
$mimetype finfo_file($finfo$filename
);
         
finfo_close($finfo
);
         return 
$mimetype
;
     }
     else
    {
        return 
'application/octet-stream'
;
    }
  }
  else
  {
      return 
mime_content_type($filename
);
   }
 }

 ?>


예제 (ex #1
 <?php
  $type 
user_mime_content_type("test.bmp.txt.zip.jpg"
);
 
print_r($type); 
// 결과: image/jpeg
 ?>

예제 (ex #2
 <?php
 $type 
user_mime_content_type("test.jpg"
);
 
header("Content-type: ".$type
);
 
header("content-disposition: attachment; filename=\"test.jpg\""
);
 
header("content-description: php generated data"
);
 
header("Pragma: no-cache"
); 
 
header("Expires: 0"
); 

 
$fp fopen("test.jpg""r"
);
 if (!
fpassthru($fp
))
 {
   
fclose($fp
);
 }
 @
flush
();
 ?>
저작자 표시
신고

exif_imagetype (PHP 4 >= 4.3.0, PHP 5)

int
exif_imagetype ( string $filename )

exif_imagetype은 Value(정수)값을 출력합니다.

Value Constant
1 IMAGETYPE_GIF
2 IMAGETYPE_JPEG
3 IMAGETYPE_PNG
4 IMAGETYPE_SWF
5 IMAGETYPE_PSD
6 IMAGETYPE_BMP
7 IMAGETYPE_TIFF_II (intel byte order)
8 IMAGETYPE_TIFF_MM (motorola byte order)
9 IMAGETYPE_JPC
10 IMAGETYPE_JP2
11 IMAGETYPE_JPX
12 IMAGETYPE_JB2
13 IMAGETYPE_SWC
14 IMAGETYPE_IFF
15 IMAGETYPE_WBMP
16 IMAGETYPE_XBM

예제 (ex #1
 <?php
 $type 
exif_imagetype("test.bmp"
);
 
print_r($type); 
// 출력: 6

 // #1 예제
 
if($type == 6
)
 {
    
dir(" BMP 파일입니다. "
);
  }
 else
  {
     
// error!
  
}

 
// #2 예제
 
if($type == IMAGETYPE_BMP
)
 {
    
dir(" BMP 파일입니다. "
);
  }
 else
  {
     
// error!
  
}
 ?>

예제 (ex #2
  <?php
 if(!function_exists('exif_imagetype')) {
    function 
exif_imagetype("test.bmp") {
     list(
$w,$h,$type,$attr)=getimagesize("test.bmp",$app);
       if(
$app !== false) {
            return 
$type;
       }
    return 
false;
    }
 }
 else {
    if((
$type exif_imagetype("test.bmp")) !== false) {
        return 
$type;
     }
   return 
false;
 }
 ?>


저작자 표시
신고