скачать mp3 вместо воспроизведения в браузере по умолчанию? - PullRequest
4 голосов
/ 17 августа 2010

У меня есть сайт, на котором пользователи могут передавать мою музыку с флеш-плеера или скачивать отдельные песни (в формате mp3).Прямо сейчас, если вы нажмете на ссылки для скачивания, они просто играют в браузере.Могу ли я сделать так, чтобы по умолчанию всплывающее окно загрузки не загружало файлы в архив пользователя rt.click?

У меня есть страница index.php со ссылками, похожими на эти (динамическое извлечение имен файлов из mySQL:

<table>
.
.
.
<td>
    <?php include 'Media/' . $row['type'] . '/' . $row['folder_name'] . '/download.php' ?>
</td>

, а затем download.php имеет это:

<div class="downloadCell">
    <h3>Downloads:</h3>
    <ul>
        <li>
          <a href="auto_download.php?path=Media/<?php echo $row['type'] . '/' . $row['folder_name'] ?>/Chemtengure.mp3">Chemtengure</a>
        </li>
    </ul>
</div>

и я поместил auto_download.php в тот же каталог, что и index.php:

auto_download.php:

$path = $_GET['path'];
header('Content-Disposition: attachment; filename=' . basename($path));
readfile($path);

1 Ответ

6 голосов
/ 17 августа 2010

Вам нужно будет добавить этот HTTP-заголовок в ваш ответ, чтобы браузер принудительно загрузил:

Content-Disposition: attachment; filename=your_filename.mp3

Например, если вы используете PHP на стороне сервера, вы можете создать скрипт, который отправляет вышеуказанный заголовок, за которым следует фактическое содержимое файла:

$path = $_GET['path'];
header('Content-Disposition: attachment; filename=' . basename($path));
readfile($path);

Если вы назовете этот скрипт download.php, то при ссылке на download.php?path=/path/to/your/file.mp3 в браузере появится диалоговое окно загрузки для file.mp3.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...