브라우저 자동 체크하여, 한글이름 파일 다운로드 시키기

phplove@phplove.co.kr
http://phplove.co.kr

———————————————————————-

$filename = “$row[filename]”; //실제 파일 이름
$filename_o = “$home_dir/tmp/”.$filename; //임시 파일이름
$down_filename = “$home_dir/upfiles/$row[rfilename]”; //실제로 저장된 디렉토리

/*
파일 업로드시 중복파일을 없애기 위해서…..
파일명을 바꾸어 저장합니다….
예를들면
최초 원본파일 next.gif란 파일을 업로드하면 next.gif.0으로 저장이 됩니다
그다음 사람이 다시 next.gif파일을 업로드하면 next.gif.1로 저장
그렇기 때문에 중복되는 파일이 없습니다.
*/

if(file_exists($down_filename)) {
/* 만약 링크된 원본파일이 있을경우 삭제를 해줍니다..^^; 왜그런지는 아시죠? */
if(file_exists($filename_o)) {
@unlink(filename_o);
}

@exec(“ln -sf $down_filename $filename_o”);
/* next.gif.0으로된 파일명을 다시 원래이름으로 링크를 시켜줍니다 */

$filename = trim($filename);
$file = “$home_dir/tmp/$filename”; // 화일이 실제로 있는 위치를..
$file_size=filesize($file);

// 브라우저 골라서 헤더를 따로 따로 전송 해 준다.(5.5 일때는 다르게 해줘야 함)
if( strstr($HTTP_USER_AGENT,”MSIE 5.5″)){
header(“Content-Type: doesn/matter”);
header(“Content-Disposition: filename=$filename”);
header(“Content-Transfer-Encoding: binary”);
header(“Pragma: no-cache”);
header(“Expires: 0”);
}else{
Header(“Content-type: file/unknown”);
Header(“Content-Disposition: attachment; filename=$filename”);
Header(“Content-Description: PHP3 Generated Data”);
header(“Pragma: no-cache”);
header(“Expires: 0”);
}

if(is_file(“$file”)){
$fp = fopen(“$file”,”r”);
if(!fpassthru($fp)) {
fclose($fp);
}
}
@unlink($file);
/* 요기 위에 링크시켜주었던걸 다시 삭제 해야죠….^^; */

} else { // 만약 파일이 없으면 없다고 메시지를 보여줘야죠…
echo(”

$row[filename] 파일이 없습니다!

“);
}