1. PHP 다운로드 회로도
2. 파일 다운로드 소스코드:
$file_name="haha.jpg";//다운로드할 파일
$file_name=iconv("utf-8","gb2312","$file_name");
$fp=fopen($file_name,"r ");//파일을 다운로드하려면 먼저 파일을 열고 메모리에 써야 합니다
if(!file_exists($file_name)){//파일 존재 여부 확인
echo "파일이 존재하지 않습니다.";
종료();
}
$file_size=filesize("a.jpg");//파일 크기 판단
//반환된 파일
Header("콘텐츠 유형: 애플리케이션/옥텟 스트림");
//바이트 형식으로 반환
Header("허용 범위: 바이트");
//파일 크기 반환
Header("허용 길이: ".$file_size);
//클라이언트 대화 상자 팝업, 해당 파일 이름
Header("콘텐츠 처리: 첨부 파일; filename=".$file_name);
//서버의 순간적인 압력 증가를 방지하고 세그먼트 단위로 읽습니다
$버퍼=1024;
동안(!feof($fp)){
$file_data=fread($fp,$buffer);
에코 $file_data;
}
//파일 닫기
fclose($fp);
?>
3. 파일 인코딩 문제:
파일명이 중국어인 경우 PHP의 함수는 중국어 파일명을 인식하지 못합니다. 일반적으로 프로그램 인코딩이 UTF-8인 경우 PHP의 기능은 비교적 오래되어 gb2312로 인코딩된 중국어만 인식할 수 있으므로 iconv("original 인코딩"을 사용하십시오. 중국어) "변환할 인코딩", "트랜스코딩할 문자열") 기능을 트랜스코딩할 수 있습니다.
예를 들어 문자열을 utf-8에서 gb2312로 변환합니다
$file_name=iconv(“utf-8”,”gb2312”,”$file_name”);