header("コンテンツタイプ: text/html;charset=utf-8");
if(strlen($FileName)<=3){echo "ダウンロードに失敗しました: ダウンロードしたファイル情報が正しくありません";return;}
$FileName=iconv("utf-8","gb2312",$FileName);//中国語の文字化けを防ぐためにファイル名の形式を変換します
//パスの決定を開始します
if(!is_null($FilePath)&&strlen($FilePath)>1){
if(substr($FilePath,0,1)=='/'){//絶対パスかどうかを判断します
$FilePath=$_SERVER['DOCUMENT_ROOT'].$FilePath;
}
if(substr($FilePath,-1)!="/"){//末尾が / かどうかを確認します
$FilePath=$FilePath.'/';
}
if(is_numeric(strpos($FilePath,":")))//絶対パスかどうかを確認します
$FilePath=str_replace("/","",$FilePath);
}
}elseif(strlen($FilePath)==1&&$FilePath!="/"){
$FilePath=$FilePath."/";
}その他{
$ファイルパス="";
}
if(!file_exists($FilePath.$FileName)){
echo "ダウンロードに失敗しました: ダウンロードするファイルが見つかりませんでした";
}
/*===============================================
ダウンロード関連のヘッダー情報を送信します
=================================================* /
header("Content-type: application/octet-stream");
header("Accept-Ranges: bytes"); //バイトサイズに応じて返す
header("Accept-Length: $FileSize");//ファイルサイズを返す
header("Content-Disposition:attachment; filename=".$FileName);//ここではクライアントのポップアップダイアログボックス、対応するファイル名
/*===============================================
関連アイテムのダウンロードを開始します
=================================================* /
$FileSize=ファイルサイズ($FilePath.$FileName);
$File=fopen($FilePath.$FileName,"r");//ファイルを開きます
$FileBuff=512;
while($FileSize>=0){
$FileSize-=$FileBuff;
エコー fread($File,$FileBuff);
}
fclose($File);
}
?>
|