Форум программистов, компьютерный форум, киберфорум
PHP для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.79/104: Рейтинг темы: голосов - 104, средняя оценка - 4.79
0 / 0 / 0
Регистрация: 27.11.2010
Сообщений: 122

Как сделать скачивание mp3-файла вместо открытия в браузере?

16.10.2012, 18:56. Показов 19722. Ответов 24
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый день. Подскажите пожалуйста как сделать кнопку для скачивания mp3 файла? Если ставить так: <a href="ссылка"></a>, то он просто открывает файл в самом браузере. Как сделать чтоб файл скачивался?
Спасибо.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
16.10.2012, 18:56
Ответы с готовыми решениями:

Как сделать ссылку на скачивание mp3 файла?
Здравствуйте. Мне нужно сделать на своем сайте прямое скачивание mp3 файлов по ссылкам, я столкнулся с такой проблемой что если я на...

Как сделать ссылку на скачивание mp3 без архивирования?
&lt;a href=&quot;sound/pesenka.mp3&quot;&gt;Скачать песню&lt;/a&gt; Хороший вариант, но мне бы хотелось, чтобы при щелчке на ссылке сразу же начиналось...

Вместо открытия страницы в WebView предлагает открытие в браузере
Добрый день. У меня есть Webview-открываю страничку в страничке есть форма которая передает значения обработчику, при клике на кнопку...

24
Почетный модератор
Эксперт HTML/CSSЭксперт PHP
 Аватар для KOPOJI
16844 / 6724 / 880
Регистрация: 12.06.2012
Сообщений: 19,967
16.10.2012, 20:43
здесь подобное https://www.cyberforum.ru/post3567146.html
0
 Аватар для Dolphin
814 / 797 / 201
Регистрация: 21.09.2012
Сообщений: 2,656
16.10.2012, 21:30
Либо посмотри еще Как сделать ссылку на скачивание mp3 файла?
0
0 / 0 / 0
Регистрация: 27.11.2010
Сообщений: 122
17.10.2012, 18:21  [ТС]
Цитата Сообщение от Dolphin Посмотреть сообщение
Я сделал так как там сказано, но у меня не работает. Я залил файл download.php с кодом:
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
 
$DIR = $_SERVER['DOCUMENT_ROOT']."/mp3/";
$file = $DIR.htmlspecialchars($_GET['q']);
 
if(file_exists($file)) {
    header('Content-Type: audio/mpeg');
    header('Content-Disposition: filename="'.htmlspecialchars($_GET['q']).'"');
    header('Content-length: '.filesize($file));
    header('Cache-Control: no-cache');
    header("Content-Transfer-Encoding: chunked"); 
 
    readfile($file);
} else {
    header("HTTP/1.0 404 Not Found");
}
в корень сайта, а ссылку на скачивание сделал вида
HTML5
1
<a href="/download.php?q=адрес_песни.mp3">ссылка</a>.
Но он выдает мне то, что показано на картинке. В чем проблема? Не могу дать ссылку, так как сайт стоит на Денвере.
Спасибо.
Миниатюры
Как сделать скачивание mp3-файла вместо открытия в браузере?  
0
 Аватар для Dolphin
814 / 797 / 201
Регистрация: 21.09.2012
Сообщений: 2,656
17.10.2012, 18:27
а тег в начале <?php и в конце ?> есть?
0
0 / 0 / 0
Регистрация: 27.11.2010
Сообщений: 122
17.10.2012, 18:36  [ТС]
Цитата Сообщение от Dolphin Посмотреть сообщение
а тег в начале <?php и в конце ?> есть?
Где именно? В ссылке? Должно так быть:
HTML5
1
<?php><a href="/download.php?q=адрес_песни.mp3">ссылка</a></?php>
?
0
 Аватар для Dolphin
814 / 797 / 201
Регистрация: 21.09.2012
Сообщений: 2,656
17.10.2012, 18:39
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<?php
$DIR = $_SERVER['DOCUMENT_ROOT']."/mp3/";
$file = $DIR.htmlspecialchars($_GET['q']);
 
if(file_exists($file)) {
    header('Content-Type: audio/mpeg');
    header('Content-Disposition: filename="'.htmlspecialchars($_GET['q']).'"');
    header('Content-length: '.filesize($file));
    header('Cache-Control: no-cache');
    header("Content-Transfer-Encoding: chunked"); 
 
    readfile($file);
} else {
    header("HTTP/1.0 404 Not Found");
}
?>
0
1178 / 1128 / 94
Регистрация: 31.05.2012
Сообщений: 3,060
17.10.2012, 18:50
В конце кстати не желательно закрывать) Так ка может пробел лишний или перевод строки прилепится и будет файл битый.

А зачем вообще пхп скриптом отдавать?
Вам нужно заголовки браузеру послать что бы он начал качать файл, а то что вы отдали скриптом, но послали заголовок что это audio - не поможет, просто лишняя нагрузка на сервер а эффект останется таким же. Вы когда просто файл качаете, и так этот заголовок идёт.

Добавлено через 3 минуты
Просто создайте файлик с именем
.htaccess в папке с mp3
и напишите в нём
Code
1
AddType application/octet-stream .mp3
Добавлено через 49 секунд
Ну и соответственно ссылку давай напрямую на файл.
Ну и сервер должен поддерживать htaccess, narod.ru напрмиер не поддерживает
1
0 / 0 / 0
Регистрация: 27.11.2010
Сообщений: 122
17.10.2012, 18:56  [ТС]
Цитата Сообщение от DrobyshevAlex Посмотреть сообщение
Просто создайте файлик с именем
.htaccess в папке с mp3
и напишите в нём
Code
1
AddType application/octet-stream .mp3
Просто кинуть .htaccess в папку с файлами или в корень сайта?
0
1178 / 1128 / 94
Регистрация: 31.05.2012
Сообщений: 3,060
17.10.2012, 18:59
Цитата Сообщение от DrobyshevAlex Посмотреть сообщение
Просто создайте файлик с именем
.htaccess в папке с mp3
Что тут не понятного ?)
0
0 / 0 / 0
Регистрация: 27.11.2010
Сообщений: 122
17.10.2012, 19:01  [ТС]
Цитата Сообщение от DrobyshevAlex Посмотреть сообщение
Что тут не понятного ?)
Все понятно, но вот не работает. Он открывает в quick time файл.
0
1178 / 1128 / 94
Регистрация: 31.05.2012
Сообщений: 3,060
17.10.2012, 19:02
у вас это на хостнге? Можете ссылки кинуть в личку на файл?
0
0 / 0 / 0
Регистрация: 27.11.2010
Сообщений: 122
17.10.2012, 19:06  [ТС]
Цитата Сообщение от DrobyshevAlex Посмотреть сообщение
у вас это на хостнге? Можете ссылки кинуть в личку на файл?
К сожалению не могу. Сайт на Денвере.
0
1178 / 1128 / 94
Регистрация: 31.05.2012
Сообщений: 3,060
17.10.2012, 19:09
Ну если вы создали файлие, именно
.htaccess
не одной буквы лишней или не дописанной, именно с точки начинается.
и в нём строка
Code
1
AddType application/octet-stream .mp3
То заголовок браузеру шлётся такой, что бы он начал качать файл.

Если он не начинает, скорей всего ваш плеер перехватывает по имени файла, то есть по расширению и начинает его воспроизводить.
php скрпит вам точно так не поможет
0
0 / 0 / 0
Регистрация: 27.11.2010
Сообщений: 122
17.10.2012, 19:16  [ТС]
Цитата Сообщение от DrobyshevAlex Посмотреть сообщение
скорей всего ваш плеер перехватывает по имени файла, то есть по расширению и начинает его воспроизводить.
php скрпит вам точно так не поможет
Все правильно написал, вставил. Это лично моя проблема или у всех будет файл проигрываться, а не скачиваться?
P.S. На некоторых сайтах я скачиваю по прямой ссылке на .mp3 файл, а вот у себя на сайте начинается открытие файла.
0
1178 / 1128 / 94
Регистрация: 31.05.2012
Сообщений: 3,060
17.10.2012, 19:23
А вот так
PHP
1
2
3
4
5
6
7
8
9
10
11
<?php
 
// путь к файлу
$file = 'mp3/1.mp3';
 
header('Content-Type: application/octet-stream');
header('Content-Disposition: filename="'.end(explode('/', $file)).'"');
header('Content-length: '.filesize($file));
header('Cache-Control: no-cache');
 
readfile($file);
Добавлено через 27 секунд
И не цитируйте всё сообщение, очень много мусора получается в теме
1
0 / 0 / 0
Регистрация: 27.11.2010
Сообщений: 122
17.10.2012, 19:27  [ТС]
Это вставить в .htaccess?
0
1178 / 1128 / 94
Регистрация: 31.05.2012
Сообщений: 3,060
17.10.2012, 19:32
нет.
создайте файлик, например
download.php
и в него вставьте, только путь к файлу впишите правильный

Добавлено через 39 секунд
Если будет качать, то нужно искать почему web сервер ваш заголовки не шлёт с htaccess
0
0 / 0 / 0
Регистрация: 27.11.2010
Сообщений: 122
17.10.2012, 19:32  [ТС]
Так мне надо не только к одному файлу, а ко всем
0
1178 / 1128 / 94
Регистрация: 31.05.2012
Сообщений: 3,060
17.10.2012, 19:34
Да вы проверьте просто, качать будет или откроет в плеере.
Так делать скачку файлов плохо, все файлы будут пхп сркиптом обрабатываться.

Вообще на хостинге лучше это в nginx настроить, отдачу статики, и подмену заголовков для файла.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
17.10.2012, 19:34
Помогаю со студенческими работами здесь

Открытия файла в браузере...
Ребята, такой вопрос: как открыть HTML файл из билдера, допустим в браузере Opera или IE?? Помогите с кодом, пожалуйста...:)

Как сделать принудительное скачивание файла?
Добрый день. Помогите пожалуйста, у меня проблема при скачивании файлов когда я на своем сайте http://mojsait.ru вставляю ссылку &lt;a href...

как на php сделать скачивание файла
как на php сделать скачивание файла например if(a=9){начинается скачивание файла на пк}

Как сделать скачивание файла по ссылке в html?
Люди как сделать скачивание файла по ссылке в html. К примеру, форматов pdf или doc, так чтобы они не открывались, а просто скачивались.

Как сделать скачивание файла на базе Chromium
Помогите делаю браузер на базе Chromium, но почему то когда заходишь на какой нибудь сайт и нажимаешь на кнопку скачать загрузка почемуто...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru