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

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

16.10.2012, 18:56. Показов 19533. Ответов 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
Ответ Создать тему
Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru