>  기사  >  백엔드 개발  >  PHP로 다운로드한 이미지가 열리지 않으면 어떻게 해야 하나요?

PHP로 다운로드한 이미지가 열리지 않으면 어떻게 해야 하나요?

藏色散人
藏色散人원래의
2020-08-13 09:59:203081검색

PHP에서 다운로드한 이미지를 열 수 없는 문제에 대한 해결 방법: 먼저 관련 PHP 파일을 연 다음 파일에 "ob_clean" 함수를 추가하여 출력 버퍼의 콘텐츠를 삭제합니다.

PHP로 다운로드한 이미지가 열리지 않으면 어떻게 해야 하나요?

추천: "PHP 비디오 튜토리얼"

php가 이미지를 다운로드하고 열지 못했습니다!

최근에 사진다운로드에 성공했는데 열어보니 파일이 잘못되어 열리지 않는다고 한참을 검색했더니

두니앙이 BOM이라고 하네요. 문제가 발생한 후 BOM 형식 없이 인코딩 형식을 utf-8로 변경했지만 업로드 후에도 문제가 지속됩니다.

마지막으로 ob_clean()을 추가하세요. 문제 해결

ob_clean의 기능은 출력 버퍼에 있는 콘텐츠를 삭제하는 것입니다. 웹사이트에 생성된 이미지 파일이 많으면 버퍼에 올바르게 액세스하려면 해당 파일을 자주 정리해야 합니다. .

내 코드는 다음과 같습니다.

function download($file_path,$file_name){
//    header("Content-type:text/html;charset=utf-8");
    //首先要判断给定的文件存在与否
    if(!file_exists($file_path)){
        return false;
    }
    $fp=fopen($file_path,"r");
    ob_clean();
    $file_size=filesize($file_path);
    //下载文件需要用到的头
    Header("Content-type: application/octet-stream");
    Header("Accept-Ranges: bytes");
    Header("Accept-Length:".$file_size);
    Header("Content-Disposition: attachment; filename=".$file_name);
    $buffer=1024;
    $file_count=0;
    //向浏览器返回数据
    while(!feof($fp) && $file_count<$file_size){
        $file_con=fread($fp,$buffer);
        $file_count+=$buffer;
        echo $file_con;
    }
    fclose($fp);
}

위 내용은 PHP로 다운로드한 이미지가 열리지 않으면 어떻게 해야 하나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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