Download arquivo TXT

6,952 views
Skip to first unread message

Danilo Miguel

unread,
Nov 7, 2009, 8:20:19 AM11/7/09
to ph...@googlegroups.com
Nobres Colegas,

Estou com uma singela dúvida: preciso gerar um arquivo de text (TXT) e enviar para o usuário baixar em seu micro. Como proceder para enviar este arquivo para o browser fazer o download e não exibir na tela os dados?

Desde já agradeço imensamente a atenção de cada um de vocês, participantes desta honrada lista.

Cordialmente,

Danilo Miguel - www.dimiguel.com.br
E-mail/MSN: dimi...@gmail.com
Skype: dimiguel.com.br
+55 35 9123.7290

P.s.: Desculpe a erudição do texto, acho que hoje estou meio inspirado (ou seria frecura mesmo? risos)

Emerson "Broga" Carvalho

unread,
Nov 8, 2009, 5:30:49 PM11/8/09
to ph...@googlegroups.com
Dá uma olhada nisso aqui... eu acho que te ajuda ...

http://scriptbrasil.com.br/forum/index.php?showtopic=105219

Abraços.

2009/11/7 Danilo Miguel <dimi...@gmail.com>:
--
--
.:.Emerson "Brôga" Carvalho.:.
+55 (31) 9645-4992
Belo Horizonte/MG-BRA
Twitter:@emersonbroga
Wave: emerso...@gmail.com
www.broga.com.br
emerso...@gmail.com
...:Programador Adobe Flex & PHP
...:Cursando Desenvolvimento de Sistemas Web
...:Learning Python + DJango

felipe moraes

unread,
Nov 8, 2009, 8:15:09 PM11/8/09
to ph...@googlegroups.com
miguel

acredito que o browser processa automaticamente qqer tipo de arquivo de texto reconhecido pelo sistema operacional .. txt, c, cpp, etc ...

é configuração de sistema ..

vc pode tentar aqueles scripts antigos de forçar download .. mas duvido q tenha sucesso .. download sem o browser ler só com extensões q o sistema operacional desconhece ..

Tanure

unread,
Nov 8, 2009, 10:23:32 PM11/8/09
to ph...@googlegroups.com
altere o header

http://php.net/manual/en/function.header.php

// Headers 
header("Content-Type: application/octet-stream; "); 
header("Content-Transfer-Encoding: binary"); 

João Vitor Almeida

unread,
Nov 9, 2009, 6:12:53 AM11/9/09
to ph...@googlegroups.com
Danilo,
veja o opção de MIME Types do servidor (Windows). No Linux não sei como funciona...



2009/11/7 Danilo Miguel <dimi...@gmail.com>



--
João Vitor Lage Almeida
Tel.: 9787-7694 | 8281-8338
MSN: vito...@gmail.com
Skype: joao.lage

Guilherme Schuab

unread,
Nov 9, 2009, 8:32:39 AM11/9/09
to ph...@googlegroups.com
Danilo, tente incluindo esses dois headers.

header('Content-type: application/notepad');
header('Content-Disposition: attachment; filename="seuarquivo.txt"');


2009/11/9 João Vitor Almeida <vito...@gmail.com>

Danilo Miguel

unread,
Nov 9, 2009, 12:59:59 PM11/9/09
to ph...@googlegroups.com
PessoALL,

Eu fiz o lance dos headers, até que dá certo, mas não sei porque cargas d'água é gravado alguns códigos no final do arquivo (acho que o tempo de geração do mesmo). Alguém tem uma noção de o que seja ou como eliminar isso?


Danilo Miguel - www.dimiguel.com.br
E-mail/MSN: dimi...@gmail.com
Skype: dimiguel.com.br
+55 35 9123.7290


2009/11/9 Guilherme Schuab <guilherm...@gmail.com>

ViTaL =)

unread,
Nov 10, 2009, 1:23:15 PM11/10/09
to ph...@googlegroups.com
Na minha aplicação aqui fiz assim, amigo:

$conteudo=.....;

$size=array_sum(count_chars ($conteudo));

$arquivo= 'nome.txt';

header("Pragma: public");
header("Expires: 0");
header("Cache-Control: must-revalidate, post-check=0, pre-check=0"); 
header("Content-Type: application/force-download");
header("Content-Type: application/octet-stream");
header("Content-Type: text/plain");
header('Content-Disposition: attachment; filename="'.$arquivo.'"');
header("Content-Transfer-Encoding: binary");
header("Content-Length: ".$size);
echo $conteudo;
exit; 

e funciona perfeitamente :)

2009/11/9 Danilo Miguel <dimi...@gmail.com>



--
Victor Hugo Felix
Desenvolvedor Web

@ Contato
- (031) 9338-1020
- vit...@gmail.com
**************************/

Lucas Arruda

unread,
Nov 10, 2009, 1:47:03 PM11/10/09
to ph...@googlegroups.com
Victor, se você configura várias vezes o Content-type do header pode ter certeza que está desperdiçando 2 desses comandos. Pelo visto, se funciona, o primeiro (force-download) é o que vale.

Eu daria a dica de usar octet-stream. Tem sempre funcionado. Alguém sabe de algum caso em que não funciona?


[]s
Lucas Arruda
lucasarruda.com


2009/11/10 ViTaL =) <vit...@gmail.com>
Reply all
Reply to author
Forward
0 new messages