<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>idealMind &#187; download file php</title>
	<atom:link href="http://blog.idealmind.com.br/tag/download-file-php/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.idealmind.com.br</link>
	<description>Soluções que facilitam a sua vida</description>
	<lastBuildDate>Mon, 26 Dec 2011 00:11:31 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
<xhtml:meta xmlns:xhtml="http://www.w3.org/1999/xhtml" name="robots" content="noindex" />
		<item>
		<title>Salvar como em php &#8211; download de arquivos</title>
		<link>http://blog.idealmind.com.br/php/salvar-como-em-php-download-de-arquivos/</link>
		<comments>http://blog.idealmind.com.br/php/salvar-como-em-php-download-de-arquivos/#comments</comments>
		<pubDate>Wed, 07 Oct 2009 03:20:31 +0000</pubDate>
		<dc:creator>Wellington Ribeiro</dc:creator>
				<category><![CDATA[php]]></category>
		<category><![CDATA[baixar arquivos]]></category>
		<category><![CDATA[como salvar php]]></category>
		<category><![CDATA[download com php]]></category>
		<category><![CDATA[download file php]]></category>
		<category><![CDATA[file save as]]></category>
		<category><![CDATA[php file save]]></category>
		<category><![CDATA[salvar arquivo php]]></category>
		<category><![CDATA[salvar arquivos php]]></category>
		<category><![CDATA[salvar como]]></category>
		<category><![CDATA[salvar imagem php]]></category>
		<category><![CDATA[salvar txt php]]></category>
		<category><![CDATA[save link as]]></category>

		<guid isPermaLink="false">http://blog.idealmind.com.br/?p=96</guid>
		<description><![CDATA[Tutorial de como salvar arquivos usando PHP.]]></description>
			<content:encoded><![CDATA[<div id="HOTWordsTxt" name="HOTWordsTxt"><p>Olá!</p>
<p>Neste post vou mostrar como salvar arquivos usando PHP. Esta funcionalidade serve para que os arquivos disponibilizados em seu site tenha um link que ao ser clicado, apareça a janela &#8220;Salvar como&#8230;&#8221;.</p>
<p>Seguindo este tutorial, você será capaz de montar um arquivo que recebe parâmetros em GET e depois chama uma função para setar os cabeçalhos dizendo que o arquivo é para download. A vantagem é que você vai criar esse arquivo apenas uma vez, e poderá replicar para todos os links de download do seu site. A funcionalidade detectará automaticamente o mime type do arquivo. Mãos às obra!</p>
<p>Primeiro, vamos criar o arquivo download.php.</p>
<pre class="brush: php; title: ; notranslate">

&lt;?php
if( isset( $_GET['arquivo'] ) &amp;&amp; is_file( $_GET['arquivo'] ) ){

 $arquivo = $_GET['arquivo'];

 // Pega a extensão do arquivo
 $ext = pathinfo($arquivo,PATHINFO_EXTENSION);

 // No vetor abaixo são setados os Mime Types dos possíveis arquivos
 $mimeType = array(
 'mp3'=&gt;'audio/mpeg',
 'pdf'=&gt;'application/pdf',
 'doc'=&gt;'application/msword',
 'ppt'=&gt;'application/vnd.ms-powerpoint',
 'pps'=&gt;'application/vnd.ms-powerpoint'
 );

 //Seta o Mime Type do arquivo de acordo com a extensão
 if(array_key_exists($ext,$mimeType)){
 $mimeType = $mimeType[$ext];
 }else{
 // Se o Mime Type não for encontrado na lista, será usado o padrão application/octet-stream
 $mimeType = &quot;application/octet-stream&quot;;
 }

 // Seta os cabeçalhos
 header( &quot;Pragma: public&quot; );
 header( &quot;Expires: 0&quot; );
 header( &quot;Cache-Control: must-revalidate, post-check=0, pre-check=0&quot; );
 header( &quot;Cache-Control: private&quot;,false );
 header( &quot;Content-Type: $mimeType&quot; );

 // A linha abaixo é responsável por dizer que o arquivo é para download
 header( &quot;Content-Disposition: attachment; filename=\&quot;&quot;.basename($arquivo).&quot;\&quot;;&quot;);

 header( &quot;Content-Transfer-Encoding: binary&quot; );
 header( &quot;Content-Length: &quot;.filesize($arquivo));

 // Lê e escreve o conteúdo do arquivo para o buffer de saída
 readfile($arquivo);

 exit;
} else {
 // Para dar um erro 404 de arquivo não encontrado
 header($_SERVER[&quot;SERVER_PROTOCOL&quot;].&quot; 404 Not Found&quot;);
 header(&quot;Status: 404 Not Found&quot;);

 // Se as duas linhas acima não der um erro 404 exibe a mensagem abaixo
 die(&quot;Arquivo não encontrado&quot;);
}
?&gt;
</pre>
<p>Agora vamos criar o arquivo que conterá o link de download de um arquivo de exemplo (exemplo.html):</p>
<pre class="brush: xml; title: ; notranslate">

&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv=&quot;Content-Type&quot; content=&quot;text/html; charset=UTF-8&quot; /&gt;
&lt;title&gt;Exemplo de download e arquivo&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;
&lt;h1&gt;Exemplo de download de arquivos com opção &quot;Salvar como&quot;&lt;/h1&gt;
&lt;b&gt;meu_arquivo.mp3&lt;/b&gt; &lt;a href=&quot;download.php?arquivo=meu_arquivo.mp3&quot;&gt;Clique para fazer o download&lt;/a&gt;
&lt;/body&gt;
&lt;/html&gt;
</pre>
<p>Pronto!</p>
<p>Agora rode o arquivo exemplo.html e clique no link &#8220;Clique para fazer o download&#8221; e aparecerá a janela &#8220;Salvar como&#8230;&#8221; para fazer download do arquivo!</p>
<p>Lembrando que o arquivo deve estar no mesmo diretório que o arquivo download.php, ou então você deverá passar também o caminho do arquivo <img src='http://blog.idealmind.com.br/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> .</p>
<p>Uma dica: se você quiser uma lista de mime types de arquivos, acesse <a href="http://www.mimetype.org/">http://www.mimetype.org/</a>.</p>
<p>Deixe seu comentário!</p>
<p>Até a próxima!<br />
<h3 class='related_post_title'>Posts Relacionados:</h3>
<ul class='related_post'>
<li><a href='http://blog.idealmind.com.br/mysql/como-instalar-facilmente-o-lamp-apache-mysql-e-php-no-ubuntu-com-taskse/' title='Como instalar facilmente o LAMP (apache, mysql e php) no ubuntu com tasksel'>Como instalar facilmente o LAMP (apache, mysql e php) no ubuntu com tasksel</a></li>
<li><a href='http://blog.idealmind.com.br/php/graficos-em-php-e-flash/' title='Flash chart &#8211; gráficos em php e flash animados'>Flash chart &#8211; gráficos em php e flash animados</a></li>
<li><a href='http://blog.idealmind.com.br/mysql/como-criar-stored-procedures-e-funcoes-no-mysql/' title='Como criar stored procedures e funções no MySQL'>Como criar stored procedures e funções no MySQL</a></li>
<li><a href='http://blog.idealmind.com.br/geral/forcar-download-em-servidor-remoto-como-amazon-s3-com-opcao-salvar-como/' title='Forçar download em servidor remoto como Amazon S3 com opção &#8220;salvar como&#8221;'>Forçar download em servidor remoto como Amazon S3 com opção &#8220;salvar como&#8221;</a></li>
</ul>
</div>]]></content:encoded>
			<wfw:commentRss>http://blog.idealmind.com.br/php/salvar-como-em-php-download-de-arquivos/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
	</channel>
</rss>

