>  기사  >  백엔드 개발  >  PHP 다운로드 파일의 내용이 깨졌을 경우 대처 방법

PHP 다운로드 파일의 내용이 깨졌을 경우 대처 방법

藏色散人
藏色散人원래의
2021-03-08 09:31:261652검색

PHP 다운로드 파일의 잘못된 내용에 대한 해결 방법: 1. "ob_clean()" 함수를 통해 출력 버퍼 내용을 지웁니다. 2. "flush()" 함수를 통해 PHP 프로그램의 버퍼를 새로 고칩니다.

PHP 다운로드 파일의 내용이 깨졌을 경우 대처 방법

이 문서의 운영 환경: Windows 7 시스템, PHP7.1, Dell G3 컴퓨터.

php 파일 다운로드 다운로드한 파일의 왜곡되고 손상된 내용에 대한 솔루션

PHP 프로그램을 만들 때 PHP를 사용하여 파일을 다운로드해야 합니다.

그런 다음 코드를 복사하고 변경하면 됩니다.

효과도 많이 나왔어요

다운로드를 누르니 뭐 파일 다운로드가 완료된 줄 알았는데, 사진을 열어보니 파일이 손상되었다고 나오더라구요. 그래서 파일 크기를 살펴봤습니다. 1KB 정도는 너무 많은 것 같습니다.

PS에서 열어보세요. 네, 손상이 보이지만 이미지가 나올 수 있습니다.

그럼 여분의 1kb 문제인거 같은데요.

그런 다음 txt를 업로드한 다음 다운로드했습니다.

물론, 파일 앞뒤에 몇 글자가 추가로 있는 것을 발견했습니다.

그런 다음 어떻게 제거할지 고민하다가 여러 바이두, 구글, 포럼에 질문을 했습니다.

결국 1시간 넘게 검색한 끝에 드디어 해결책을 찾았습니다. [추천: "PHP 동영상 튜토리얼. " 】

코드는 다음과 같습니다

public function download()
{
  $upload=M('upload');
  $data=$upload->find($_GET['id']);

  if(empty($data)){
    header('HTTP/1.0 404 Not Found');
    header('Location: .');
  }else{

  $path='./public/Uploads/'.$data['savename'];

  header("Content-Type:".$data['type']);

  header('Content-Disposition: attachment; filename="'.$data['name'].'"');

  header('Content-Length:'.$data['size']);

  ob_clean();
  flush();

  readfile($path);

  }
}

참고:

ob_clean();
flush(); 이것이 핵심입니다. 이 두 기능을 사용한 후에는 그림이 정상적으로 열리고 텍스트가 깨지지 않았습니다.

위 내용은 PHP 다운로드 파일의 내용이 깨졌을 경우 대처 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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