0

preciso saber como inicio um download de um txt sem que ele abra no navegador

criado por Marcelo Fuchs em 11/02/2003 1:27pm
Nenhuma descrição foi enviada.

Lista de Respostas:

0
11/02/2003 11:43pm
(~21 anos atrás)
João K. respondeu:
É uma questão de utilizar a função header para não indicar que é um arquivo text/plain

Adicione a seguinte função antes de enviar o conteúdo;

header("Content-disposition: filename=nome_do_arquivo.txt");
header("Content-type: unknown/unknown");
echo "bla bla bla";

0
12/02/2003 4:49am
(~21 anos atrás)
Lyma respondeu:
Ou, se preferir, basta zipá-lo ;)

0
12/02/2003 6:25am
(~21 anos atrás)
Jayr H. C. Porto respondeu:
Esta solução é aparentemente ótima porém, fará com ue seu arquivo seja transferido em forma binária e afetará todo o seu conteúdo. É por este motivo que a maioria dos arquivos que tento fazer download em mac dão pau. Neste caso (txt) deve dar pau em pc também mas, vale a pena tentar.

0
12/02/2003 6:43am
(~21 anos atrás)
Tem que ser necessariamente com extensão txt?

Eu fiz um sistema de intranet dentro da empresa onde trabalho e as pessoas fazem downloads de arquivos texto com outras extenções. Por exemplo .tag .Eu facilitei pra mim e acho que não compliquei para os outros, pois eles precisam selecionar o programa que vai abrir o arquivo, apena uma vez no windows, e quem trabalha com linux, abre sem selecionar nada.

0
12/02/2003 11:34am
(~21 anos atrás)
Jayr,

eu já fiz isso usando "header" que o Calvin falou, e posso te assegurar que nunca tive problemas com os arquivos...

0
12/02/2003 12:11pm
(~21 anos atrás)
Leonardo Saraiva respondeu:
Eu uso a seguinte rotina:

<?
$arquivo = "arquivo.txt";
$tamanho = filesize($arquivo);
header("Content-type: Application/unknown");
header("Content-length: $tamanho");
header("Content-Disposition: attachment; filename=$arquivo");
header("Content-Description: PHP Generated Data");
readfile($arquivo);
?>

0
12/02/2003 9:25pm
(~21 anos atrás)
Kra, eu ja passei por isso e nao adianta mudar a extensao do arquivo exceto para os casos de .zip, .exe e mais algumas, pois o IE acima de 3.0 tende a interpretar tudo pela frente. Eu resolvi assim:

<script language="JavaScript"><!--
function onClickleft() {
alert("ATENÇÃO: o link refere-se a foto em alta resolução, disponível somente para download."+'\n'+
"Use o botão direito do mouse e selecione a opção 'Salvar destino como...' !")
}
// -->
</script>
um script java que alerta o usuario e pede que ele use o botao direito do mouse. Isso para Windows.

no link apos o endereco o arquivo e antes do fechamento da tag coloque:

onclick="onClickleft(); return false">
Funciona bem é claro que se pudesse o ideal seria, trocar o evento do mouse de leftbutton pra rightbutton mas nunca descobri como fazer isso.

0
13/02/2003 9:19am
(~21 anos atrás)
Jayr H. C. Porto respondeu:
André.

Desculpe discordar de você mas, não estou falando de um pequeno pedaço de programa que funciona em CERTA categoria de usuários. Estou tratando de um universo maoir chamado internet e, nele, existem IE, Netscape, opera, etc.
Esta rotina que vocês estão instruindo, funciona sim em um programinha que, apesar de ser o mais utilizado na intenet e se chamar Internet Explorer, tem diversos bugs relacionados a esta tarefa chamada Download. Para você ter uma idéia, este erro acontece dentro do próprio IE na sua versão para Mac, corrompendo TOTALMENTE o arquivo final baixado.

Se você utilizar o nescape então, ai da um pau danado (vesão 3.5 para cima). Outra coisa, esta discussão é longa e existe aquí no site mesmo, pois eu não consigo baixar os scripts em meu mac (estamos olhando a solução e já estou bastante adintado na resposta - apesar de não a ter ainda).

Em minha LONGA pesquisa, vi diversas considerações a respeito de como fazer isso e, a mais enfática delas diz respeito a PDFs que, cada dia mais, estão sendo utilizados por ai.

A opção CORRETA, segundo os desenvolvedores do PHP seria utiizar o header de codificação para download (application/octet-stream) que deveria disparar o download corretamente caso a extensão dos arquivos fosse .bin ou .exe. Porém isso da pau com IE. ele tem suas próprias regras e ignora as existentes. Não estou querendo detonar a microsoft e existem motivos para que ele haja assim: Se o servidor de internet não for propriamente configurado, este sistema de reconhecimento chamado MIME-Type, indexará o arquivo a um formato errado, atrapalhando todo o processo então, o IE criou suas próprias regras.

Não estou falando isso para dizer que sei a solução mas sim, que até hoje os GRANDES CONHECEDORES relatam não existir forma mágica e multiplataforma para a solução do problema (leia-se multi arquivo também).

A saída de quase todos os grandes é redirecionar para uma conexão ftp de "somente leitura" e baixar o arquivo de lá.

0
13/02/2003 4:52pm
(~21 anos atrás)
Jayr,

testei em IE e netscape, ambos funcionaram, mas ambos em plataforma windows... vlw pela atenção ao uso do header num MAC. :-)

Se eu puder te ajudar em algo nesta pesquisa, dá um toque!

0
14/02/2003 9:02am
(~21 anos atrás)
Jayr H. C. Porto respondeu:
André.

Você testou com um PDF, doc, xls, qxp, ppt também? O problema esta ai. Em txt roda sim, testei (em pc) e funciona sim. mas nosso amigo PDF deu pau.

Quando ao Mac, o problema não reside só no formato do arquivo dinâmico (fulano.txt) o mac interpreta arquivos vindos de um PC atravêz destas extesões e cria a sua própria que é transparente ao usuário 8que fica armazenada em um DB chamado Desktopdb. feito isso, ele interpreta o formato unknow e detona o arquivo misturando tudo em um código que não consegui desifrar. Por exemplo, ele inclui no arquivo final um pedaço do script PHP. Se vc ou alguem tiver uma idéia, estou disposto a tentar.

0
14/02/2003 6:10pm
(~21 anos atrás)
Jyar,

creio que não tenha testado com PDF, testei com exe, zip, txt e mais alguns...

0
15/02/2003 12:51am
(~21 anos atrás)
João K. respondeu:
Eu acho que outra questão importante em falar é sobre a formatação dos arquivos .TXT ou plain/text. É o famoso ENTER (quebra de linha).

No UNIX ou Mac OS X, a tecla enter é \n
No Windows é \r\n
No Mac é \r

O melhor mesmo é converter tudo para \r\n

0
18/02/2003 9:15am
(~21 anos atrás)
Pois é. Simplismente mude a extensão do arquivo e informe ao usuário para abrir a partir de um simples editor de textos.

Nova Resposta:

(Você pode usar tags como <b>, <i> ou <code>. URLs serão convertidas para links automaticamente.)