2012-05-18 2 views
0

finfo를 사용하여 파일을 서버에 업로드하기 전에 이미지 파일인지 확인하려고합니다. 내 질문에 비록 아래의 코드는 jpeg에 대해서만 있지만 다른 파일 형식이 있습니다.finfo를 사용하여 여러 파일 형식을 결정하는 방법은 무엇입니까?

질문 1 : 그래서 나는이 개 질문이

나는 그런 질환자 등 GIF, TIFF, PNG, 여러 파일 형식을 확인하기 위해 finfo 사용할 수있는 방법

질문 2 : 내가해야합니까 다른 유효성 검사 방법을 사용하여 이미지인지 확인하거나 내가 아래에있는 것으로 충분합니까? 당신이 PHP 5.2 이하를 사용하는 경우,

$finfo = finfo_open(FILEINFO_MIME_TYPE); 
$mimetype = finfo_file($finfo, '/path/to/file.jpg'; 
finfo_close($finfo); 

if (substr ($mimetype, 0, 5) == 'image') { 
    // its an image 
} 
else { 
    // its not an image! 
} 

두 번째 옵션 :

$finfo = finfo_open(FILEINFO_MIME_TYPE); 
$mimetype = image_type_to_mime_type(exif_imagetype('/path/to/file.jpg')); 

if ((($_FILES["file"]["type"] == "image/gif") 
|| ($_FILES["file"]["type"] == "image/jpeg") 
|| ($_FILES["file"]["type"] == "image/pjpeg") 
|| ($_FILES["file"]["type"] == "image/tiff") 
|| ($_FILES["file"]["type"] == "image/png") 
|| ($_FILES["file"]["type"] == "image/bmp") 
|| ($_FILES["file"]["type"] == "image/ico") 

{ 

    if ($finfo !== FALSE){ 

    move_uploaded_file($_FILES["fileImage"]["tmp_name"], 
    "ImageFiles/" . $_FILES["fileImage"]["name"]); 
    $result = 1; 

    @finfo_close($finfo); 
} 
} 
+0

코드에 정확히 무엇이 있습니까? 이미 여러 파일 형식을 검사하고 있지 않습니까? – Jeroen

답변

0

이 파일 형식은 이미지인지 여부를 확인하는 작업을해야합니다

다음

코드입니다

$mimetype = mime_content_type('/path/to/file.jpg'; 

if (substr ($mimetype, 0, 5) == 'image') { 
    // its an image 
} 
else { 
    // its not an image! 
} 

기타 유효성 검사 방법에 대해서는 getimagesize() 함수를 사용해야합니다. http://php.net/manual/en/function.getimagesize.php

if (getimagesize ('/path/to/file.jpg')) { 
    // its an image 
} 
else { 
    // its not an image! 
} 

이 방법은 스크립트는 파일의 MIME 형식 또는 확장을 변경하여 바보짓을 할 수 없습니다.

+0

내가 생각한 것은 finfo가 jpg 이미지를 확인하는 것 뿐이지 만, finfo는 gif, bmp, tiff 등의 정보를 어떻게 확인합니까? '$ _FILES [ "file"] [ "type"]'이 작업을 수행하고 있지만 finfo가 동일한 작업을 수행하기를 원합니다. 당신이 제공 한 코드와 동일합니다. 단지 jpg 만 검사하는 것이 아닙니까? 다른 이미지 유형은 어떻습니까? – user1394925

+0

PHP 버전은 무엇입니까? FILEINFO_MIME_TYPE은 PHP 5.3.0 이후에만 사용 가능합니다 – Jeroen

+0

PHP Im의 어떤 버전을 사용하고 있는지 확인하려면 어떻게해야합니까? 나는 단지 심천 편집기 인 크림슨 편집기를 사용하여 – user1394925

관련 문제