PHP を使用して画像を開かずにダウンロードする方法!

WBOY
リリース: 2016-06-23 14:10:58
オリジナル
1007 人が閲覧しました

例:
PHP で指定した画像をダウンロードするには?ブラウザで開くのではなく?


ディスカッションへの返信 (解決策)

<?php    $file = "/tmp/dummy.tar.gz";    header("Content-type: application/octet-stream");    header('Content-Disposition: attachment; filename="' . basename($file) . '"');    header("Content-Length: ". filesize($file));    readfile($file);
ログイン後にコピー

Han Shuping が PHP ダウンロードについて話している事例を投稿します。お役に立てれば幸いです。ビデオを見る必要がある場合は、Han Shuping PHP ビデオ チュートリアル レクチャー 87 をご覧ください:
コードは次のとおりです:

//関数の説明
//パラメータの説明 $file_name ファイル名
/ /$file_sub_dir: ダウンロード ファイル '"/xxx/xxx/" のサブパス
function down_file($file_name,$file_sub_dir){

//ファイルが中国語の場合。

//理由 php ファイル関数は比較的古いため、中国語 gb2312 をトランスコードする必要があります
$file_name=iconv("utf-8","gb2312",$file_name);

//絶対パス
$file_path=$_SERVER[ 'DOCUMENT_ROOT'][
].$file_sub_dir.$file_name;

//1. ファイルを開きます
if(!file_exists($file_path)){
echo "ファイルが存在しません!" ;
,"r");
//2. ファイルを処理します
// ダウンロードされたファイルのサイズを取得します

if($file_size>30){

echo "< script language= 'javascript'>window.alert('toolarge')";
return ;
}

//返されたファイル
header("Content-type: application/octet-stream") ;
//バイトサイズに応じて返す
header("Accept-Ranges: bytes");
// ファイルサイズを返す
header("Accept-Length: $file_size");ここでのクライアントのダイアログ ボックスは、ファイル名
header("Content-Disposition:attachment; filename=".$file_name);


//データをクライアントに送信します

$buffer=1024; //ダウンロードのセキュリティを確保するために、ファイル バイト読み取りカウンターを 1 つ作成することをお勧めします
$file_count=0
//この文は、ファイルが終了したかどうかを判断するために使用されます
while(!feof($fp) && ($file_size-$file_count> ;0) ){
$file_data=fread ($fp,$buffer);
// 読み取られたバイト数をカウントします
$file_count+=$buffer;
// データの一部をブラウザに送信します。 $file_data;
}

//ファイルを閉じる
fclose($fp);

//関数が利用可能かどうかをテストする
down_file("Shunping.jpg","/http/down/");

?>

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート