PHP実装ファイルのダウンロードの詳しい説明
1. PHPの回路図をダウンロードします
2. ファイルのダウンロード ソース コード:
コードをコピーします コードは次のとおりです:
$file_name="haha.jpg";//ダウンロードする必要があるファイル
$file_name=iconv("utf-8","gb2312","$file_name");
$fp=fopen($file_name,"r+");//ファイルをダウンロードするには、まずファイルを開いてメモリに書き込む必要があります
if(!file_exists($file_name)){//ファイルが存在するかどうかを判断します
echo "ファイルが存在しません";
exit();
}
$file_size=filesize("a.jpg");//ファイルサイズを決定します
//返されたファイル
Header("Content-type: application/octet-stream");
//バイト形式で返す
Header("Accept-Range: バイト");
//ファイルサイズを返す
Header("Accept-Length: ".$file_size);
// 対応するファイル名を含むクライアント ダイアログ ボックスをポップアップ表示します
Header("Content-Disposition:attachment; filename=".$file_name);
//サーバーの瞬間的な圧力上昇を防ぎ、セグメントを読み取ります
$buffer=1024;
while(!feof($fp)){
$file_data=fread($fp,$buffer);
エコー $file_data;
}
// ファイルを閉じます
fclose($fp);
?>
3. ファイルエンコーディングの問題の解決策:
ファイル名が中国語の場合、PHPの関数は中国語のファイル名を認識できません。通常、プログラムのエンコーディングがUTF-8の場合、PHPの関数は比較的古く、gb2312でエンコードされた中国語しか認識できないため、iconv(“original encoding”)を使用します。中国語の場合、「変換先のエンコーディング」、「トランスコード対象の文字列」)関数でトランスコードできます。
例えば、文字列をutf-8からgb2312に変換します
$file_name=iconv(“utf-8”,”gb2312”,”$file_name”);
4ヘッダーメソッドを使用してファイルダウンロードのソースコードを実装します
コンパイルされたダウンロード方法を添付します。これはパッケージ化されており、直接使用できます:
コードをコピーします コードは次のとおりです:
関数 download_by_path($path_name, $save_name){
ob_end_clean();
$hfile = fopen($path_name, "rb") または die("ファイルが見つかりません: $path_namen");
Header("Content-type: application/octet-stream");
Header("コンテンツ転送エンコーディング: バイナリ");
Header("Accept-Range: バイト");
Header("Content-Length: ".filesize($path_name));
Header("Content-Disposition:attachment; filename="$save_name"");
ながら (!feof($hfile)) {
エコー fread($hfile, 32768);
}
fclose($hfile);
}
上記はこの記事の全内容です。PHP でファイルのダウンロードを実装する方法について予備的に理解しましたか? ご自身で試して、この記事で示されている簡単な例と組み合わせて、プロジェクトをより完璧にしてください。
http://www.bkjia.com/PHPjc/918861.htmlwww.bkjia.comtruehttp://www.bkjia.com/PHPjc/918861.html技術記事ファイル ダウンロードの PHP 実装の詳細な説明、1. PHP ダウンロードの概略図 2. ファイル ダウンロードのソース コード: 次のようにコードをコピーします: php $file_name="haha.jpg";//ダウンロードする必要があるファイル $file_name= iconv(「う…