본문 바로가기

[PHP] 파일 크기, 사이즈 불러오는 함수, filesize()

반응형

PHP  언어에서  파일의  크기를  알아내려면  어떻게  해야할까요?  간단한  방법으로  php에서  제공하는  filesize()  함수를  이용하는  방법이  있습니다.  이  함수는  해당하는  파일의  크기를  반환합니다.  사용방법은  매우  간단하여  아래와  같은  형식으로  사용할  수  있습니다.  전달  할  인자에는  해당하는  파일이름을  넣어줍니다.

filesize(해당하는  파일이름)
//  파일이름  필수사항


함수를  실행시킬  경우  해당하는  파일의  사이즈를  확인하여  반환합니다.  참고로  이때  반환하는  값의  기본  단위는  byte입니다.  그렇기때문에  만약  Kbyte  단위의  값이  필요하다면  간단하게  1024를  나누면  원하는  값을  구할  수  있을  것입니다.  그럼  아래의  예제와  함께  알아보시기  바랍니다.


!  filesize()  함수  예제소스  보기

아래는  특정  이미지  파일의  크기를  알아내어  kbyte로  표기하는  방법에  대한  간단한  예제소스입니다.  실제로  현재  서버에  저장되  있는  이미지의  크기를  예로  사용하였습니다.  그럼  아래  코드를  확인하세요.

< ?php
      $imageSize  =  filesize(./images/galleryImg_01.jpg)  /  1024;
      //    파일의  크기를  알아낸  후  1024로  나누어  kbyte  단위로  계산

      $imageSize  =  floor($imageSize);
      //  소수점  제거를  위해  floor를  사용

      echo  $imageSize.'  KB';
?>

실행한  결과  아래와  같이  나타났습니다.

542  KB

//  계산된  결과로  542  KB를  출력함

위  예제소스를  사용하여  우리가  원하는  파일단위의  값을  구하였습니다.  만약  단순하게  byte가  아니라  더  많은  단위를  간략하게  표기위한  방법은  없을까요?  아래와  같이  단위로  구분하여  출력하는  함수를  만들어  사용하면  매우  편리할  것입니다.  아래의  소스코드를  참고하세요.


#  사이즈를  구분  가능한  단위로  바꾸어  출력하는  함수  소스  보기
<?php
function  formatSize($bytes,  $decimals  =  2)  {
      $size  =  array('B',  'KB',  'MB',  'GB',  'TB',  'PB',  'EB',  'ZB',  'YB');
      $factor  =  floor((strlen($bytes)  -  1)  /  3);
      return  sprintf("%.{$decimals}f",  $bytes  /  pow(1024,  $factor))  .  @$size[$factor];
}
?>

위의  사용자  함수  formatSize()는  앞의  인자에는  확인할  파일을...  뒤에는  나타낼  소수점을  사용할  수  있습니다.  만약  512,000  byte의  파일을  위  함수를  사용해  확인하면  다음과  같이  결과가  나타나게됩니다.


< ?php
      $test  =  512000;
      echo  formatSize($test);
?>

512.00KB
//  출력결과로  512.00KB를  반환하였음

매우  편리하게  원하는  단위의  값을  읽기  쉽도록  변환해주는  함수입니다.

반응형

댓글


Copyright ⓒ SmartWeb All rights reserved.