-
-
/*---------------- - * $FileName はファイル名であり、渡す必要があります
- * $FilePath はファイルパス。オプションで、相対パスまたは絶対パスにすることができます
- * @パスは中国語ではなく、英語とデータのみで構成できます
- * @編集者: bbs.it-home.org
- ---- ----- ---------*/
-
- header("Content-type: 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."/";
- }else{
- $FilePath="";
- }
- if(!file_exists($FilePath. $FileName)){
- echo "ダウンロードに失敗しました: ダウンロードするファイルが見つかりませんでした"; return;
- }
- /*---------------
- ダウンロード関連のヘッダ情報を送信
- -- -----------=*/
- header("Content-type: application/octet-stream");
- header("Accept-Ranges: bytes") ;//バイトサイズに従って返す
- header("Accept-Length: $FileSize");//ファイルサイズを返す
- header("Content-Disposition:attachment; filename=".$FileName);//クライアントのポップ-up ダイアログ ボックスに、対応するファイル名が表示されます< /p>
/*---------------
- 関連のダウンロードを開始します
- ----------- --=*/
- $FileSize=filesize( $FilePath.$FileName);
- $File=fopen($FilePath.$FileName,"r");// ファイルを開きます
- $FileBuff=512;
- while($ FileSize>=0){
- $FileSize-=$ FileBuff;
- echo fread($File,$FileBuff);
- }
- fclose($File);
- }
- ?>
-
コピーコード
|