2011-01-13 11 views
1

は、我々は以下のコードPHPは現在のURLを変更せずにリダイレクトしますか?

http://www/example.com/getFile.php?fileid=12

<?php 
$id = $_REQUEST['fileid']; 

// Some code to store download traking and get filename for this id in $filename var. 
$filename = getFileName($id); 

header('Content-type: audio/mpeg'); 
header('Content-Disposition: filename=' . $id . '.mp3'); 
readfile($filename); 

?> 

しかし、mp3ファイルのサイズが非常に大きいであるいくつかのmp3ファイルの収集とFlash Playerは、我々はPHPファイルを使用してmp3ファイルをレンダリングmp3ファイルのリストを追跡するために、このmp3ファイルを使用していそしてプレイヤーはそのために、我々はまた、正常に動作し

<?php 
$id = $_REQUEST['fileid']; 

// Some code to store download traking and get filename for this id in $filename var. 
$filename = getFileName($id); 

header('Location: '. $filename); 
?> 

このコードのコードの下に使用し、IEでの休憩を取得するが、そのまた、現在のURL すなわちhttp://www/example.com/getFile.php?fileid=12をchnages http://www/example.com/files/xyz.mp3

ユーザーが簡単にmp3ファイルをダウンロードできますPHPや他の方法を使用して?

+3

最初の解決策でも、ユーザーは簡単にファイルをダウンロードできます。 ** URLへのリクエストは、データをスライスして返します。**このデータは保存することができます。このデータがサーバー側に正確にどのように出力されるかは無関係です。 – deceze

+0

また、URLを変更せずにリダイレクトすることはできません。リダイレクトの定義はURLを変更することです。 – deceze

答えて

0

(私はもともと投稿時に申し訳ありませんが、適切に質問を読んでいない - 私は問題はIEと大きなファイルサイズであることを今参照)

あなたがIEの長さを語って、バッファのフラッシュを試みることができる

header('Content-Length: ' . filesize($file)); 
ob_clean(); 
flush(); 
1

Flashがファイルを取得します。 PHPを介してFlashへのURLだけを返します。

関連する問題