PHP実装のダウンロード

WBOY
WBOYオリジナル
2016-06-23 14:30:461000ブラウズ

/*
この記事で提供されている 3 つのファイル ダウンロード コードのうち 2 つはローカル サーバーのファイル ダウンロードをサポートし、もう 1 つはリモート サーバー上のファイルのローカルへのダウンロードをサポートしています。
*/

function download($file_dir,$file_name)
//パラメータの説明:
//file_dir: ファイルが置かれているディレクトリ
//file_name: ファイル名
{
$file_dir = Chop($file_dir); //パス内の余分なスペースを削除します
//ダウンロードするファイルのパスを取得します
if($file_dir != '')
{
$file_path = $file_dir;
if(substr($file_dir,strlen($ file_dir)-1)、strlen($ file_dir))!= '/')
//ダウンロードするファイルを決定';
return false;
}

$file_size = filesize($file_path);

header("content-type: application/octet-stream");
header("accept-ranges: bytes");
header ("accept-length: $file_size");
header("content-disposition:attachment; filename=".$file_name);

$fp = fopen($file_path,"r");
$buffer_size = 1024; | $cur_pos + = $buffer_size;
}

$buffer = fread($fp,$file_size-$cur_pos);
echo $buffer;
fclose($fp);
return true;

}

?> ;
< ?php

$file_name = "info_check.exe";
$file_dir = "/public/www/download/";
if (!file_exists($file_dir . $file_name)) { //ファイルが存在します
echo " ファイルが見つかりません";
exit;
} else {
$file = fopen($file_dir . $file_name,"r"); // ファイルを開きます
// ファイルタグを入力します
header(" content-type: application/ オクテットストリーム");
header("accept-ranges: bytes");
header("accept-length: ".filesize($file_dir . $file_name));
header("content- disposition:attachment; filename= " . $file_name);
// 出力ファイルの内容
echo fread($file,filesize($file_dir . $file_name));
fclose($file);
exit;}
?>


//php ファイルのダウンロード コード: php はファイル ダウンロード機能をどのように実装しますか (リモート ファイルのダウンロードをサポートします)

//ファイル パスが http および ftp の場合、ダウンロード コードは次のとおりです:

$file_name = "info_check.exe";
$file_dir = " http://www.zzarea.com/";
$file = @ fopen($file_dir . $file_name,"r");
if (!$file ) {
echo "ファイルが見つかりません";
} else {
header("content-type: application/octet-stream");
header("content-disposition:attachment; filename=" . $file_name);
while (!feof ($file)) {
echo fread($file,50000);
}
fclose ($file);
}

?>


この記事は、Web ページ制作チュートリアル ネットワーク www.zzarea からのものです。 .com 元のリンク: http://www.zzarea.com /php100/php-1124.html

呼び出しプロセス中に、プロンプト

警告: ヘッダー情報を変更できません

が表示されます。オンラインで多くの方法を見つけましたが、うまくいったのは 1 つだけでした。 php.iniのoutput_suffering = onまたは=4096を変更します

後者の方が前者よりもダウンロードが高速です。理由がわかりません。

ob_start(); ob_end_flush(); もありますが、これは機能しません。

こんな感じで書きます。


/*
* このテンプレートを変更するには、[ツール] | [テンプレート]
* を選択し、エディターでテンプレートを開きます。 _REQUEST['filetype'];
//echo $filetype;
$path = dirname(__FILE__)."/http://www.cnblogs.com/seq/";
$durl = $path.$filename;
$filename = 'phpcms2008_o2abf32efj883c91a.iso';
$file = @fopen($durl, 'r');
header("Content-Type: application/octet-stream");

header("Accept-Range: バイト");

header("Accept-Length: ".filesize($durl));

header("Content-Disposition:attachment; filename=".$filename);


echo fread($file,filesize) ($durl));
fclose($file);
ob_end_flush();

?>

の書き方が間違っていませんか?



声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。