PHP перенаправить без изменения текущего URL? - PullRequest
1 голос
/ 13 января 2011

У нас есть коллекция mp3-файлов, и флэш-плеер использовал этот mp3-файл, чтобы отследить список mp3-файлов, мы отображаем mp3-файл с использованием php-файла.

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 файла очень велик, и в IE проигрыватель ломается, для этого мы также используем код ниже

<?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);
?>

этот код работает нормально, но также изменяет текущий URL т.е. http://www/example.com/getFile.php?fileid=12 до http://www/example.com/files/xyz.mp3

чтобы пользователь мог легко скачать mp3 файл напрямую, как я могу предотвратить это? используя php или другой способ?

Ответы [ 2 ]

1 голос
/ 13 января 2011

Позвольте Flash извлечь файл.Верните только URL для Flash через PHP.

0 голосов
/ 29 мая 2011

(Извините, неправильно прочитал вопрос при первоначальной публикации - теперь я вижу, что проблема связана с IE и большим размером файла)

Вы можете попробовать определить длину IE и очистить буферы:

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