ホームページ >バックエンド開発 >PHPチュートリアル >PHPファイルダウンロードソリューション

PHPファイルダウンロードソリューション

WBOY
WBOYオリジナル
2016-06-13 12:16:19919ブラウズ

PHP ファイルのダウンロード
以下はオンラインで見つけて自分で変更したコードです:

down_file.php:

<?php<br /><br />if(!empty($_GET)){<br /><br />    header("Content-type: application/octet-stream ; charset=utf-8"); //输出类型 <br />	header("Content-Disposition:filename=".$name);<br />	header("Accept-Ranges: bytes"); //文件单位<br />	header("Accept-Length:".$filesize); //文件大小<br />	header("Content-Disposition: attachment; filename=".$name);//下载时显示的名字<br />$name=$_GET['name'];<br />	$url=$_GET['url'];<br /><br />	$f=fopen($url.$name, "r");<br />	$buffer=1024;<br />	$filesize=filesize($name);<br />	$downsize=0;<br />	$str="";<br />	while(!feof($f) && ($filesize-$downsize)>0){<br />		$downsize+=$buffer;<br />		echo fread($f,$buffer);<br /><br />	}<br />	//echo $str;<br />	fclose($f);<br /><br />}<br /><br />?>


html ページ:
<!DOCTYPE html><br /><html><br />	<head><br />		<meta charset="utf-8"><br />		<title>Document</title><br />	</head><br />	<body><br />		<br />	<a href="down_file.php?name=a.jpg&url=./img/">下载a.jpg</a><br /><br />	</body><br /></html>


目的は、.jpg をダウンロードすることです。
問題は、クリックすると、ポップアップ ウィンドウが a.jpg ではなく down_file.php をダウンロードすることです。 。以下に示すように



動作するコードを教えていただければ幸いです
-----解決策のアイデア。 ----- ------------------
$name=$_GET['name'];
$url=$_GET[' url'];
$filesize=filesize($url.$name);

これらの 3 つの文は上に配置する必要があり、そうでない場合は header("Content-Disposition:filename=".$name); $name を取得できません。通知を

に変更してください。
<br />if(!empty($_GET)){<br />    $name=$_GET['name'];<br />    $url=$_GET['url'];<br />    $filesize=filesize($url.$name);<br /><br />    header("Content-type: application/octet-stream ; charset=utf-8"); //输出类型 <br />    header("Content-Disposition:filename=".$name);<br />    header("Accept-Ranges: bytes"); //文件单位<br />    header("Accept-Length:".$filesize); //文件大小<br />    header("Content-Disposition: attachment; filename=".$name);//下载时显示的名字<br /><br /> <br />    $f=fopen($url.$name, "r");<br />    $buffer=1024;<br />    $downsize=0;<br />    $str="";<br />    while(!feof($f) && ($filesize-$downsize)>0){<br />        $downsize+=$buffer;<br />        echo fread($f,$buffer);<br /> <br />    }<br />    //echo $str;<br />    fclose($f);<br /> <br />}<br />

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