サンプル集  >  PHP  >  ダウンロード
ダウンロード
2009/01/28

a タグでファイルを指定すると、 html じゃなければダウンロードできると思っていました。 php ファイルを a タグで指定したところ、php が実行されて、その結果が表示されました。

なんでだろう?と思いましたが、普通に php のページにリンクしているのと同じだから結果が表示されるのは当たり前のことですね。。。

php の実行結果ではなく、phpファイル自体をダウンロードするにはどうすれば良いのでしょうか。

◆環境
OS Windows XP Professional Version 2002 Service Pack 2
Webサーバー AN HTTP 1.42b
PHP 5.2.4

ファイルをダウンロードする場合、ヘッダーにファイル名を指定すれば良いようです。

download.html
1: 
2: 
3: 
4: 
5: 
<html>
<body>
<a href="download.php">download.phpをダウンロードする</a>
</body>
</html>

download.php
 1: 
 2: 
 3: 
 4: 
 5: 
 6: 
 7: 
 8: 
 9: 
10: 
11: 
<?php
    $fName = "download.php";
    $fLen  = filesize($fName);

    // ヘッダーの出力
    header("Content-Disposition: attachment; filename=$fName");
    header("Content-Length:$fLen");
    header("Content-Type: application/octet-stream");

    readfile($fName);
?>

◆実行結果


ダウンロードされた「download.php」を見ると正しい内容でした。

▲ PageTop  ■ Home


Copyright (C) 2012 ymlib.com