파일 다운로드 질문입니다,.

<?
header("Content-Type: text/html; charset=UTF-8");

ob_start();

$downloadFile = $_GET[downloadFile];
$downloadFileDir = "attach/";

if ( file_exists( $downloadFileDir.$downloadFile ) ) {
header("Content-Type: application/octet-stream");
header("Content-Disposition: attachment;; filename=$downloadFile");
header("Content-Transfer-Encoding: binary"); 
header("Content-Length: ".(string)(filesize($downloadFileDir.$downloadFile))); 
header("Cache-Control: cache, must-reval!idate"); 
header("Pragma: no-cache"); 
header("Expires: 0");

$fp = fopen( $downloadFileDir.$downloadFile, "rb" ); // rb 읽기전용 바이너리 타입

while ( !feof ( $fp ) ) {

echo fread($fp, 100*1024); // echo 는 전송을 뜻함
}

fclose($fp);
flush(); // 출력 버퍼비우기 함수
} else {

echo "파일 존재하지않음";
}

ob_end_clean();
?>

파일 다운로드 소스입니다.

여기서 궁금한게 파일은 정상적으로 업로드 되고 해당 ftp 들어가서 파일을 다우받아서 확인해 보면

그림이라던지 문서 열어서 보면 전부다 내용이 정상적으로 들어있습니다.

그런데 여기서 파일 다운로드를 이용하여 파일을 다운받으면

그림은 이미지가 없음이라고 뜨고 문서 내용들은 전부 비어있는걸로 나오는데 왜그런건가요?
|

댓글 1개

잘못 짰거나 content-length 계산이 이상하거나
파일 읽을 권한이 없거나 에러메시지가 떴거나
파일 못읽었을거같은데

뭐 여튼 그런거 등등이요오오오

경험상 content-length 안넣는게 좋습니다.
안 넣어줘도 파일 다운로드 잘 받고요.
숫자 조금 다르면 브라우저마다 삐꾸 내는 경우가 있습니다.


string cast도 없어도 될것 같고 fread echo 하느니 그냥
echo file_get_contents 하는게 나을것 같기도 한데
이건ㅅ ㅏ족이니까 빼지요
댓글을 작성하시려면 로그인이 필요합니다.

프로그램

+
제목 글쓴이 날짜 조회
13년 전 조회 1,801
13년 전 조회 2,044
13년 전 조회 2,479
13년 전 조회 1,863
13년 전 조회 3,458
13년 전 조회 2,083
13년 전 조회 2,743
13년 전 조회 2,981
13년 전 조회 2,790
13년 전 조회 2,129
13년 전 조회 2,406
13년 전 조회 1,931
13년 전 조회 1,779
13년 전 조회 2,450
13년 전 조회 2,122
13년 전 조회 1,989
13년 전 조회 1,875
13년 전 조회 2,075
13년 전 조회 1,873
13년 전 조회 2,438
13년 전 조회 2,094
13년 전 조회 1,748
13년 전 조회 2,376
13년 전 조회 2,029
13년 전 조회 2,720
13년 전 조회 2,211
13년 전 조회 4,648
13년 전 조회 2,705
13년 전 조회 3,275
13년 전 조회 1,923
13년 전 조회 1,578
13년 전 조회 2,270
13년 전 조회 3,054
13년 전 조회 1,945
13년 전 조회 3,161
13년 전 조회 1,882
13년 전 조회 2,252
13년 전 조회 2,934
13년 전 조회 2,262
13년 전 조회 1,935
13년 전 조회 2,637
13년 전 조회 4,915
13년 전 조회 1,646
13년 전 조회 1,732
13년 전 조회 1,877
13년 전 조회 4,976
13년 전 조회 2,341
13년 전 조회 2,556
13년 전 조회 2,563
13년 전 조회 1,860
14년 전 조회 1,711
14년 전 조회 1,877
14년 전 조회 2,680
14년 전 조회 2,021
14년 전 조회 2,346
14년 전 조회 3,529
14년 전 조회 2,002
14년 전 조회 2,322
14년 전 조회 2,429
14년 전 조회 1,781
14년 전 조회 4,530
14년 전 조회 2,301
14년 전 조회 3,837
14년 전 조회 2,166
14년 전 조회 1,841
14년 전 조회 1,886
14년 전 조회 1,740
14년 전 조회 2,277
14년 전 조회 2,408
14년 전 조회 3,752
14년 전 조회 5,330
14년 전 조회 1,737
14년 전 조회 4,320
14년 전 조회 1,705
14년 전 조회 2,174
14년 전 조회 1,798
14년 전 조회 2,145
14년 전 조회 2,894
14년 전 조회 2,235
14년 전 조회 1,675
14년 전 조회 2,348
14년 전 조회 1,975
14년 전 조회 2,363
14년 전 조회 2,821
14년 전 조회 2,178
14년 전 조회 1,790
14년 전 조회 2,977
14년 전 조회 2,253
14년 전 조회 1,843
14년 전 조회 1,761
14년 전 조회 2,151
14년 전 조회 1,662
14년 전 조회 2,829
14년 전 조회 2,084
14년 전 조회 2,070
14년 전 조회 1,726
14년 전 조회 2,382
14년 전 조회 3,194
14년 전 조회 1,698
14년 전 조회 1,579