ファイルの強制ダウンロードを実装するにはphpを使用しており、ヘッダー関数がよく使われます。
例、phpファイルのダウンロード例。
-
- class Downfile {
- function downserver($file_name){
- $file_path = "./img/".$file_name;
- //トランスコーディング、ファイル名は gb2312 に変換されて解決されます中国語の文字化け
- $file_name = iconv("utf-8","gb2312",$file_name);
- $file_path = iconv("utf-8","gb2312",$file_path);
- $fp = fopen($ file_path," r") または exit("ファイルが存在しません");
- //変数を空のままにして各ダウンロードのサイズを定義します
- $buffer = 1024;
- //ファイルのサイズを取得します
- $file_size = filesize($file_path);
- / /header("Content-type:text/html;charset=gb2312");
- //使用される 4 つの http プロトコル情報を書き込みます
- header("Content-type:application/octet-stream ");
- header(" Accept-Ranges:bytes");//無視して構いません
- header("Content-Length: ".$file_size);//ここの元のテキストは Accept-Length です。http を確認した後、プロトコルでは、そのようなアイテムはありません
- header("Content-Disposition:attachment ;filename=".$file_name);
- //バイトカウンター、現在のバイト数を記録します
- $count = 0;
- while(!feof($ fp) && $file_size-$count>0){
- / /$fp によって開かれたファイル ストリームから毎回 $buffer サイズのデータを読み取ります
- $file_data = fread($fp,$buffer);
- $count+=$buffer;
- //読み取りデータを読み取ります
- echo $file_data;
- }
- //ファイルストリームを閉じます
- fclose($fp);
- }
- }
- ?>
-
コードをコピー
この関数を呼び出して渡しますファイルをダウンロードするには、上記のコードの $file_path の変更に注意してください。
|