728x90
300x250
최대한 간결하게 포스팅합니다
html 에서 다운로드 할 파일명과 디렉토리를 같이 download.php 로 보내서
download.php 단에서 GET 파라미터 받아와서 합쳐갖고 다운 진행하는 부분입니다.
html
<a href='./download.php?file=파일명&target_Dir=디렉토리'>다운</a>
download.php
<?
$filename = $_GET["file"];
$target_Dir = $_GET["target_Dir"];
$file = $_SERVER['DOCUMENT_ROOT']."/".$target_Dir."/".$filename;
$filesize = filesize($file);
if (is_file($file)) {
header("Content-type: application/octet-stream");
header("Content-Length: ".filesize("$file"));
header("Content-Disposition: attachment; filename=$filename"); // 다운로드되는 파일명 (실제 파일명과 별개로 지정 가능)
header("Content-Transfer-Encoding: binary");
header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
header("Pragma: public");
header("Expires: 0");
/*
if (preg_match("MSIE", $_SERVER['HTTP_USER_AGENT'])) {
header("Content-type: application/octet-stream");
header("Content-Length: ".filesize("$file"));
header("Content-Disposition: attachment; filename=$filename"); // 다운로드되는 파일명 (실제 파일명과 별개로 지정 가능)
header("Content-Transfer-Encoding: binary");
header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
header("Pragma: public");
header("Expires: 0");
}else {
header("Content-type: file/unknown");
header("Content-Length: ".filesize("$file"));
header("Content-Disposition: attachment; filename=$filename"); // 다운로드되는 파일명 (실제 파일명과 별개로 지정 가능)
header("Content-Description: PHP3 Generated Data");
header("Pragma: no-cache");
header("Expires: 0");
}
*/
$fp = fopen($file, "rb");
fpassthru($fp);
fclose($fp);
}
else {
echo "해당 파일이 없습니다.";
}
?>
밑에 주석은 필요없어서 해놨는데 혹시 저부분에 필요한거 있으시면 해제해서 쓰시면될듯 ~
728x90
300x250
'IT > PHP' 카테고리의 다른 글
[PHP] 실시간 새로고침 SSE( Server-Sent Events) 이용하기 (0) | 2020.11.04 |
---|---|
[PHP] PHP 이용한 텍스트파일(txt, ini 등등) 읽기 (0) | 2020.10.29 |
html 파일 안에서 php 소스 안먹힐때 httpd.conf 수정 (0) | 2020.09.24 |
[PHP] 엑셀 다운로드시 숫자 0 없어지는 문제 (0) | 2020.08.26 |
[PHP] 변수 합치기 #php변수 #php변수합치기 (0) | 2020.08.26 |