PHP では、ヘッダーの content-type を設定して、ブラウザで直接コンテンツを開くのではなく、ユーザーにコンテンツをダウンロードさせることができます。これは、次のコードによって実現されます。
DownloadFile.php
$filename = $_GET['file']; // URL からファイル ID を取得します- // ファイル ID をクエリします
- $query = sprintf("SELECT * FROM tableName WHERE id = '%s'",mysql_real_escape_string($filename));
- $sql = mysql_query($query);
- if(mysql_num_rows($sql) > 0){
- $row = mysql_fetch_array($sql);
- //いくつかのヘッダーを設定します
- header("Pragma: public");
- header("Expires: 0");
- header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
- header("Content-Type: application/force-download");
- header("Content-Type: application/octet-stream");
- header("Content-Type: application/download");
- header("Content -性質: 添付ファイル名 = ".basename($row['ファイル名']).";");
- header("Content-Transfer-Encoding: バイナリ");
- header("Content-Length: ".filesize ($row['FileName']));
- @readfile($row['FileName']);
- exit(0);
- }else{
- header("Location: /");
- exit;
- }
- ?>
-
コードをコピー
files.php
|