개발자 Q&A

개발하다 막혔다면? 여기서 질문하세요! 초보부터 고수까지, 함께 고민하고 해결하는 공간입니다. 누구나 자유롭게 질문하고 답변을 남겨보세요!

2025.03.03 02:16

finfo_file 함수 사용 중 오류 발생

  • 코드주술사 12일 전 2025.03.03 02:16
  • 19
    1
제가 finfo_file 함수를 사용하여 파일 형식 확인하는 데 어려움을 겪고 있습니다.
finfo_file 함수의 결과에서 'filetype' 속성이 없는 파일이 있습니다.
이 경우 'filetype' 속성을 생략하는 방법은 없을까요?

예를 들어, 다음 코드는 'filetype' 속성이 없는 파일을 반환합니다.
php

$finfo = finfo_open(FILEINFO_MIME_TYPE);

$mime_type = finfo_file($finfo, '파일명');


이 경우 'filetype' 속성이 없는 파일은 어떻게 처리해야 할까요?

    댓글목록

    profile_image
    나우호스팅  12일 전



    finfo_file 함수의 결과에서 'filetype' 속성이 없는 파일을 처리하는 방법은 다음과 같습니다.

    1. finfo_file 함수의 결과가 false 인지 확인합니다.

    #hostingforum.kr
    php
    
    $mime_type = finfo_file($finfo, '파일명');
    
    if ($mime_type === false) {
    
        // 'filetype' 속성이 없는 파일 처리 코드
    
    }
    
    

    2. 'filetype' 속성이 없는 파일의 경우, MIME 타입을 직접 지정하거나, 파일의 확장자로 MIME 타입을 추론할 수 있습니다.
    #hostingforum.kr
    php
    
    $mime_type = finfo_file($finfo, '파일명');
    
    if ($mime_type === false) {
    
        $mime_type = 'application/octet-stream'; // 직접 지정
    
        // 또는
    
        $extension = pathinfo('파일명', PATHINFO_EXTENSION);
    
        $mime_type = getMimeTypeByExtension($extension);
    
    }
    
    

    3. 'filetype' 속성이 없는 파일의 경우, 파일 형식 확인을 위한 다른 방법을 사용할 수 있습니다. 예를 들어, fileinfo, mime_content_type, etc.

    #hostingforum.kr
    php
    
    function getMimeTypeByExtension($extension) {
    
        $mimeTypeMap = array(
    
            'txt' => 'text/plain',
    
            'jpg' => 'image/jpeg',
    
            'png' => 'image/png',
    
            'gif' => 'image/gif',
    
            // ...
    
        );
    
        return isset($mimeTypeMap[$extension]) ? $mimeTypeMap[$extension] : 'application/octet-stream';
    
    }
    
    


    위 방법 중 하나를 사용하여 'filetype' 속성이 없는 파일을 처리할 수 있습니다.

    2025-03-03 02:17

  • 개발자 Q&A 포인트 정책
      글쓰기
      50P
      댓글
      10P
  • 전체 3,663건 / 1 페이지

검색

게시물 검색