AVI 파일을 다운로드하는 PHP 스크립트를 만들려고합니다. 파일이 내 서버에 있으며 사용자에게 보내고 싶습니다. 다음 스크립트를 만들었지 만 실행할 때 0KB의 큰 AVI 파일 만 가져옵니다.PHP 헤더 첨부 AVI 파일
누구든지 내가 뭘 잘못하고 있다고 말할 수 있습니까? 나는 파이어 폭스에서 LiveHTTPHeaders에서 무엇을 얻을
$file_path = "downloads/test.avi";
// Get filename
$filename = explode("/", $file_path);
$filename = $filename[count($filename)-1];
if(file_exists($file_path)) {
$file_extension = strtolower(substr(strrchr($file_path, "."), 1));
// This will set the Content-Type to the appropriate setting for the file
switch($file_extension) {
case "pdf":
$ctype = "application/pdf";
break;
case "exe":
$ctype = "application/octet-stream";
break;
case "zip":
$ctype = "application/zip";
break;
case "doc":
$ctype = "application/msword";
break;
case "xls":
$ctype = "application/vnd.ms-excel";
break;
case "ppt":
$ctype = "application/vnd.ms-powerpoint";
break;
case "gif":
$ctype = "image/gif";
break;
case "png":
$ctype = "image/png";
break;
case "jpeg":
$ctype = "image/jpg";
break;
case "jpg":
$ctype = "image/jpg";
break;
case "mp3":
$ctype = "audio/mpeg";
break;
case "wav":
$ctype = "audio/x-wav";
break;
case "mpeg":
$ctype = "video/mpeg";
break;
case "mpg":
$ctype = "video/mpeg";
break;
case "mpe":
$ctype = "video/mpeg";
break;
case "mov":
$ctype = "video/quicktime";
break;
case "avi":
$ctype = "video/x-msvideo";
break;
case "src":
$ctype = "plain/text";
break;
default:
$ctype = "application/force-download";
}
$filesize = filesize($file_path);
// Set content type
header("Content-type: " . $ctype);
// Download file
header("Content-Disposition: attachment; filename=\"" . $filename . "\"");
// Set size of file
header("Content-Length: " . $filesize);
readfile($file_path);
이
은 (어떤 이유로Content-Length
에 대한 제로)입니다 :
이
HTTP/1.1 200 OK
Date: Sun, 17 Jul 2011 14:34:24 GMT
Server: Apache/2.2.6 mod_auth_kerb/5.3 PHP/5.2.17 mod_fcgid/2.3.5
X-Powered-By: PHP/5.2.17
Expires: Thu, 19 Nov 1981 08:52:00 GMT
Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Pragma: no-cache
Content-Disposition: attachment; filename="test.avi"
Content-Length: 0
Connection: close
Content-Type: video/x-msvideo
당신이 줄을 추가 http://snuzzer.dk/nas/client.php
참고 : 키가 파일 확장명이고 값이 mime 유형 인 배열을 사용하십시오. 코드를 줄이고 편집하기가 더 쉽습니다 – hakre
readfile()은 읽은 바이트 수를 반환합니다. 실제로 파일을 읽었는지 확인할 수 있습니까? 사용 권한 문제 일 수 있습니다. – sanmai