Getリクエストによりダウンロードファイルを変える

解決済みの質問

Getリクエストによりダウンロードファイルを変える

お世話になります。aizawa_naoと申します。
---------------------------------------
環境、php5.2.0-8 apache2.2.4 debian
---------------------------------------

上記の環境で、簡単なphpスクリプトを作成しようと思っています。
ほとんど、phpの知識はないのですが、phpでgetリクエストを受け取り、
それをブラウザに出力することは出来ます。
これをサイトなどで、よく見るGetのパラメータにより、ダウンロードする
ファイルを変化させたいのですが、どのような記述になるのでしょうか?

例)http://example.com/test.php?file=test.zip
このようなリクエストがくると、test.zipをダウンロードし、
  http://example.com/test.php?file=test2.zip
とするとtest2.zipがダウンロードされるような仕組みをご教示いただければと思います。
初歩的な質問で申し訳ありませんが、宜しくお願いいたします。

投稿日時 - 2008-01-28 23:34:46

連想キーワード:

QNo.3723102

困ってます

質問者が選んだベストアンサー

ごく簡単に書くとこんな感じですかね

<?php
$dl_file = $_GET['file'];
if (!file_exists($dl_file)) { die("Error: File(".$dl_file.") does not exist"); }
if (!($fp = fopen($dl_file, "r"))) { die("Error: Cannot open the file(".$dl_file.")"); }
fclose($fp);
if (($content_length = filesize($dl_file)) == 0) { die("Error: File size is 0.(".$dl_file.")"); }

header("Content-Disposition: attachment; filename=\"".basename($dl_file)."\"");
header("Content-Length: ".$content_length);
header("Content-Type: application/octet-stream");
if (!readfile($dl_file)) { die("Cannot read the file(".$dl_file.")"); }
?>

投稿日時 - 2008-01-28 23:39:26

お礼

ありがとうございました。
随所にわからない箇所がございますが、動作いたしました。
わからない箇所は調べながら、勉強していきます。
本当にありがとうございました。

投稿日時 - 2008-01-29 13:55:08

ANo.1

0人が「このQ&Aが役に立った」と投票しています

あわせてチェックしたい
  • Debian Linuxでzip: command not found ...
  • POST/GETリクエストパラメータのモニタリング(一覧表示)について ...
  • GETリクエストでURLを渡す時 ...
PR
【回答募集中】花粉にひと言、物申す![ 詳細 ]

OKWaveのオススメ

教えて弁護士さん!

お金の悩みQ&A特集はこちら