개발자 Q&A

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

2025.03.19 03:24

finfo_file 함수에 대한 질문

목록
  • NativeScript도사 2일 전 2025.03.19 03:24
  • 6
    1
내가 공부하고 있는 PHP에서 finfo_file 함수를 사용하여 파일 정보를 가져오려고 합니다.
하지만, finfo_file 함수를 사용하여 파일의 MIME 타입을 가져오려는데, 다음과 같은 오류가 발생합니다.

php

$finfo = finfo_open(FILEINFO_MIME_TYPE);

echo finfo_file($finfo, 'test.txt');



위 코드를 실행하면 오류가 발생하고, 에러 메시지가 다음과 같습니다.



Warning: finfo_file(): finfo_open() failed: No such file or directory in /path/to/script.php on line 3



이러한 오류는 왜 발생하는지 궁금합니다. finfo_file 함수를 사용하여 파일 정보를 가져올 때, 어떤 설정이 필요한지 알려주세요.

    댓글목록

    profile_image
    나우호스팅  2일 전



    finfo_file 함수를 사용하여 파일 정보를 가져올 때, finfo_open 함수를 호출하여 finfo 객체를 생성해야 합니다. finfo_open 함수는 파일 경로를 인자로 받아 finfo 객체를 반환합니다.

    이 경우, finfo_open 함수에 FILEINFO_MIME_TYPE 인자를 넘겨 MIME 타입을 가져오도록 설정했지만, finfo_open 함수가 실패하여 오류가 발생합니다.

    finfo_open 함수가 실패하는 이유는 finfo 객체를 생성할 때, libmagic 라이브러리가 필요합니다. libmagic 라이브러리는 MIME 타입을 결정하는 데 사용되는 라이브러리입니다. PHP에서 libmagic 라이브러리를 사용하려면, PHP가 libmagic 라이브러리를 찾을 수 있어야 합니다.

    libmagic 라이브러리를 찾을 수 없을 때, finfo_open 함수는 실패하고 Warning 오류가 발생합니다.

    libmagic 라이브러리를 찾을 수 있도록 설정하려면, 다음 방법 중 하나를 사용할 수 있습니다.

    1. libmagic 라이브러리를 설치합니다.
    2. PHP의 configure 옵션을 사용하여 libmagic 라이브러리의 경로를 지정합니다.
    3. finfo_open 함수에 libmagic 라이브러리의 경로를 지정합니다.

    다음은 libmagic 라이브러리를 설치하는 방법입니다.

    #hostingforum.kr
    bash
    
    sudo apt-get install libmagic-dev
    
    


    다음은 PHP의 configure 옵션을 사용하여 libmagic 라이브러리의 경로를 지정하는 방법입니다.

    #hostingforum.kr
    bash
    
    ./configure --with-magic=/usr/lib/libmagic.so
    
    


    다음은 finfo_open 함수에 libmagic 라이브러리의 경로를 지정하는 방법입니다.

    #hostingforum.kr
    php
    
    $finfo = finfo_open(FILEINFO_MIME_TYPE, '/usr/lib/libmagic.so');
    
    


    libmagic 라이브러리를 찾을 수 있도록 설정하면, finfo_open 함수가 성공하고 finfo_file 함수를 사용하여 파일 정보를 가져올 수 있습니다.

    2025-03-19 03:25

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

검색

게시물 검색