スレッド表示 | フラット表示〕 全トピック 920 件中 240 番目 次≫ ≪前

HTTP ダウンロード

created: 2006-05-23 09:32 | modified: 2006-05-24 21:29 | reply: 2

[3086] HTTP ダウンロード

user: kokufu | created: 2006-05-23 09:32
音楽ファイル(wmp)のダウンロードをしたいのですが、ファイルが実行されてメディアプレイヤーが実行されてしまいます。

<a href="./download/ファイル.wma" >ダウンロード</a>
<a href="http://サーバ/ディレクトリ/ファイル名.wma>ダウンロード</a>

上のソースで試してみましたが実行されてしまいます
必ずダウンロードするようにするにはどうすればよろしいでしょうか?
reply: 3087 返信 編集 削除

[3087] Re. HTTP ダウンロード

user: ゆうじ | created: 2006-05-24 00:32
こんばんわ。

HTMLでリンクを張っただけでは、
既知の Content-Type だとダウンロードされません。
適切な HTTPヘッダを出力してあげる必要があります。

download.php
<?php
// ダウンロードディレクトリ設定
$dirname = '/home/userdir/public_html/download/';

// クエリストリングスチェック
// $_GET['filename'] は、ダウンロードするファイル名
// これが、空・値が不正・ファイルが無い場合は終了。
if ( !$_GET['filename']
|| !preg_match('/^[\w]+\.[\w]+$/', $_GET['filename'])
|| !is_readable($dirname. $_GET['filename'])) {
exit();
}
// ファイル名獲得
$filename = $_GET['filename'];

// HTTPヘッダ出力
header('Content-Type: application/octet-stream-dammy');
header('Content-Disposition: attachment; filename='. $filename);
//header('Content-Transfer-Encoding: binary');
header('Content-Length: '. filesize($dirname. $filename));

// ファイル出力
readfile($dirname. $filename);
?>

上記スクリプトを http://hostname/download.php に置くとして、
クリックさせるHTMLに次のように書けば、
music.wma がダウンロードできます。
<a href="http://hostname/download.php?filename=music.wma">ダウンロード</a>
Parent: 3086  reply: 3088 返信 編集 削除

[3088] HTTP ダウンロード

user: kokufu | created: 2006-05-24 21:29
こんばんは。
問題の件、うまくいけました。
ゆうじさん、ありがとうございました。
Parent: 3087  返信 編集 削除
スレッド表示 | フラット表示〕 全トピック 920 件中 240 番目 次≫ ≪前
ページの一番上へ
Googleグックマークに登録 Yahooグックマークに登録 livedoorクリップに登録 @niftyクリップに登録 はてなブックマークに登録 deliciousに登録 Buzzurlに登録 FC2ブックマークに登録
最近更新された掲示板トピックス
管理人Blog
Yahoo Search

最近更新したNote
PHPマニュアル
今日のブックマーク
PHPマニュアル関数検索
関数名を入力し検索ボタンをクリック↑