Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

googleguy

Fazer o download!

Recommended Posts

Gente, eu coloquei várias musicas em uma pasta na minha conta FTP pro meu site, só que quando o usuario clica no link a musica começa a tocar no navegador, mas eu queria que ela começasse o download. Como eu resolvo isso? Eu queria que aparecesse assim:

FK0VHOg.png

 

Mas aparece assim:

 

bNC4ZMY.png

Compartilhar este post


Link para o post
Compartilhar em outros sites

não sei como você está colocando, mas para fazer um link de download baista fazer isso

 

<a hrf="nome do arquivo">Nome do arquivo</a>

Ex;

<a hrf="musica.mp3">Musica</a>

Compartilhar este post


Link para o post
Compartilhar em outros sites

não sei como você está colocando, mas para fazer um link de download baista fazer isso

 

<a hrf="nome do arquivo">Nome do arquivo</a>

Ex;

<a hrf="musica.mp3">Musica</a>

 

não sei como você está colocando, mas para fazer um link de download baista fazer isso

 

<a hrf="nome do arquivo">Nome do arquivo</a>

Ex;

<a hrf="musica.mp3">Musica</a>

Sim, é desse jeito mesmo que eu estou fazendo... mas não começa o download :/

Compartilhar este post


Link para o post
Compartilhar em outros sites

Se vc esta colocando extamente desse jeito informado acima esta faltando um "e" no atributo href da tag a..

 

Ex errado:

 

<a hrf="musica.mp3">Musica</a>

 

Ex correto:

 

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

Compartilhar este post


Link para o post
Compartilhar em outros sites


<a href="direct_download.php?file=FiberDesignsByBenedict-Slideshow-iPhone.m4v">Download direto o arquivo m4v aqui</a><br /><br />

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Navegadores com suporte a HTML5 se não me engano que costumam fazer isso, eles reproduzem o audio, para resolver você pode passar uma instrução ao usuario para quando abrir a música ele clicar com o botão direito do mouse e seleciona "Salvar como...", ou outra coisa que envolva salvar,enfim, tente o que o Xanburzum disse, n testei mas deve funcionar.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Se vc esta colocando extamente desse jeito informado acima esta faltando um "e" no atributo href da tag a..

 

Ex errado:

 

<a hrf="musica.mp3">Musica</a>

 

Ex correto:

 

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

É claro que eu sei que é href...

 

Navegadores com suporte a HTML5 se não me engano que costumam fazer isso, eles reproduzem o audio, para resolver você pode passar uma instrução ao usuario para quando abrir a música ele clicar com o botão direito do mouse e seleciona "Salvar como...", ou outra coisa que envolva salvar,enfim, tente o que o Xanburzum disse, n testei mas deve funcionar.

 

Mas e esses sites que eu clico e começa o download? como faz .--.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Isso acontece porque o browser conhece o MIME Type do arquivo .mp3 (audio/mpeg) e sabe como reproduzi-lo, evitando assim "fazer o download para o computador".

 

O MIME Type basicamente é uma informação a respeito do arquivo, para que quando for requisitado, o browser saber diferenciá-lo de um outro arquivo. No seu caso, quando você requisita, por exemplo, exemple.net/the_beatles_hey_jude.mp3, o servidor responde com conteúdo e detalhes do arquivo, entre eles o MIME Type:

 

Servidor: "Este é um audio/mpeg".

Browser: "Ah, isso é audio/mpeg! Eu posso reproduzí-lo".

 

Para contornar esse problema, eu conheço duas formas que basicamente forçam o dados do header do arquivo e por consequência o browser "força" o download:

 

PHP

<?php

define ('DS', DIRECTORY_SEPARATOR);
define ('FILES_DIR', getcwd() . DS . 'upload' . DS);

if (isset($_GET['file']) && isset($_GET['type']))
{
	$file = $_GET['file'];
	$type = $_GET['type'];

	if (file_exists(FILES_DIR . $file))
	{
		header("Content-disposition: attachment; filename=$file");
		header("Content-type: $type");
	}
	else {
		echo "404 Not Found";
	}
}

O arquivo é bem simples e pode apresentar falhas, deve ser aprimorado. A URL ficaria:

<a href="exemple.net/download.php?file=led_zeppelin_stairway_to_heaven.mp3&type=audio/mpeg" title="Baixar Stairway To Heaven - Led Zeppelin">Baixar Stairway To Heaven - Led Zeppelin</a>

HTACCESS

<FilesMatch "\.(pdf|mp3|mp4)$" >
    ForceType application/octet-stream
    Header add Content-Disposition "attachment"
</FilesMatch>

É possível utilizar o arquivo de configurações do Apache, verifique se sua configuração de servidor possuí suporta o uso de htaccess e se o mod_headers está sendo carregado. Se tudo estiver certo, então basta criar o arquivo .htaccess no diretório dos arquivos que você quer forçar o download.

 

Você pode modicar os formatos que desejar:

<FilesMatch "\.(mp3|mp4|wmv|wma)$">

O funcionamento é simples: todas as requisições que seguirem com as extensões definidas irão receber um MIME Type de arquivo genérico sem especicações de como se deve fazer para abri-lo: octet-stream.

Em seguida o arquivo recebe um novo Header: o Content-Disposition como attachment, mudando o estilo de apresentação na qual é necessário um ação do usuário para abrir o arquivo.

 

Fontes:

http://webdesign.about.com/od/php/ht/force_download.htm

http://stackoverflow.com/questions/3828352/what-is-a-mime-type

http://httpd.apache.org/docs/current/howto/htaccess.html

http://httpd.apache.org/docs/2.2/mod/mod_headers.html

http://en.wikipedia.org/wiki/MIME

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.