>  기사  >  백엔드 개발  >  PHP에서 바이너리 스트림의 파일 유형을 결정하는 방법

PHP에서 바이너리 스트림의 파일 유형을 결정하는 방법

WBOY
WBOY원래의
2016-10-10 11:55:533019검색

저는 최근 다음과 같은 방법을 사용하여 파일을 다운로드하고, 파일 스트림을 가져오고, 하드 디스크에 저장하고, 파일 형식을 결정했습니다.
그런데 이건 중복인 것 같아요. file_get_contents() 이후에 저장하지 않고 파일 형식을 확인할 수 있나요?

<code class="php">$image=file_get_contents($url);
file_put_contents($imagePath, $image);   //将图片流存入服务器图片目录
$type=image_type_to_extension(exif_imagetype($imagePath));   //文件类型</code>

답글 내용:

저는 최근 다음과 같은 방법을 사용하여 파일을 다운로드하고, 파일 스트림을 가져오고, 하드 디스크에 저장하고, 파일 형식을 결정했습니다.
그런데 이건 중복인 것 같아요. file_get_contents() 이후에 저장하지 않고 파일 형식을 확인할 수 있나요?

<code class="php">$image=file_get_contents($url);
file_put_contents($imagePath, $image);   //将图片流存入服务器图片目录
$type=image_type_to_extension(exif_imagetype($imagePath));   //文件类型</code>

<code>$image = file_get_contents($url);

echo check_image_type($image);

function check_image_type($image)
{
    $bits = array(
        'JPEG' => "\xFF\xD8\xFF",
        'GIF' => "GIF",
        'PNG' => "\x89\x50\x4e\x47\x0d\x0a\x1a\x0a",
        'BMP' => 'BM',
    );
    foreach ($bits as $type => $bit) {
        if (substr($image, 0, strlen($bit)) === $bit) {
            return $type;
        }
    }
    return 'UNKNOWN IMAGE TYPE';
}</code>

<code>$finfo = new finfo(FILEINFO_MIME_TYPE);
var_dump($finfo->file('t.jpg')); // ==> image/jpeg</code>

finfo 확장 프로그램 사용

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.