ホームページ  >  記事  >  バックエンド開発  >  PHP実装ファイルダウンロードの詳しい説明、_PHPチュートリアル

PHP実装ファイルダウンロードの詳しい説明、_PHPチュートリアル

WBOY
WBOYオリジナル
2016-07-13 10:12:57925ブラウズ

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 でファイルのダウンロードを実装する方法について予備的に理解しましたか? ご自身で試して、この記事で示されている簡単な例と組み合わせて、プロジェクトをより完璧にしてください。

www.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/918861.html技術記事ファイル ダウンロードの PHP 実装の詳細な説明、1. PHP ダウンロードの概略図 2. ファイル ダウンロードのソース コード: 次のようにコードをコピーします: php $file_name="haha.jpg";//ダウンロードする必要があるファイル $file_name= iconv(「う…
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。