Fóruns sobre PHP, JavaScript, HTML, MySQLi, jQuery, Banco de Dados, CSS


Moderador: web

 
Avatar do usuário
ADMIN
ADMIN
Tópico Autor
Mensagens: 17736
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Criar link para download mp3 ao invés de reproduzir no navegador

22-02-2016 13:58

Nesse post vou dar uma dica para solucionar o problema do arquivo mp3 que quando disponibilizado o link para download é tocado no navegador ao invés de ser oferecido para download.

<a href="musica.mp3">download</a>

O script usado é em PHP.

Crie um arquivo em .php com o seguinte código:

Dica: Coloque todos os mp3 em uma única pasta e coloque um index.html nela.
Depois no script abaixo, coloque o nome da pasta onde está os mp3 nessa linha:

$dir = './'; // diretório onde está o arquivo


<?php // mantenha a / no final - ./ é relativo ao diretório atual $dir = './'; // diretório onde está o arquivo if(isset($_GET['arquivo'])!="") { $arq = $_GET['arquivo']; function erro_JS($tex){ // retorno quando houver erro echo '<SCRIPT language="JavaScript"> window.alert('.$tex.'); </SCRIPT>'; exit(); } function retorna_extensao($arq){ // função q pega a extensão do arquivo $arr = explode('.', $arq); $num = count($arr)-1; $ext = $arr[$num]; return $ext; } $ext = retorna_extensao($arq); switch($ext){ case "pdf": $var = "application/pdf"; break; case "exe": $var = "application/octet-stream"; break; case "zip": $var = "application/zip"; break; case "doc": $var = "application/msword"; break; case "xls": $var = "application/vnd.ms-excel"; break; case "ppt": $var = "application/vnd.ms-powerpoint"; break; case "gif": $var = "image/gif"; break; case "png": $var = "image/png"; break; case "jpeg": case "jpg": $var = "image/jpg"; break; default: $var = "application/force-download"; } if(file_exists($dir.$arq)){ // adição do header para download header("Pragma: public"); header("Expires: 0"); header("Cache-Control: must-revalidate, post-check=0, pre-check=0"); header("Cache-Control: private",false); header("Content-Type: $var"); header("Content-Disposition: attachment; filename=\"".basename($dir.$arq)."\";" ); header("Content-Transfer-Encoding: binary"); header("Content-Length: ".filesize($dir.$arq)); readfile($dir.$arq); } else { erro_JS('Erro ao tentar fazer download de arquivo!'); } } ?>

Agora ao invés de chamar o mp3 direto pelo link deve chamar da seguinte forma:

<a href="download.php?arquivo=musica.mp3">download</a>

Supondo que você chamou o arquivo com o código acima de download.php.
0
A melhor hospedagem para o seu site HostGator!

Quem está online

Usuários navegando neste fórum: Nenhum usuário registrado