Ir para conteúdo

Arquivado

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

André Maretti

Download de TXT

Recommended Posts

e aí galera....Tenho um arquivo txt no servidor e quando gero um link pra ele em HTML o arquivo abre no próprio browser.... não quero isso... quero q que abra a tela de download para o usuário escolher onde gravar....Tentei o Header em PHP mas ele também abre no browser....Alguém tem alguma idéia??? Sabe de algum comando q resolva meu problema?

Compartilhar este post


Link para o post
Compartilhar em outros sites

tenta assim:

<?                $fsource = (isset($_GET['source'])) ? $_GET['source'] : "";  $abre  = fopen($fsource,"r");  $learq = fread($abre,filesize($fsource));  $tparq = filetype($fsource);  fclose($abre);  header('Content-type: application/' . $tparq);  header('Content-disposition: attachment; filename=' . $fsource);  echo $learq;?>

para usar você faz assim:<a href="download.php?source=file.txt">baixe o file.txt</a>ve se ajuda[]'s

Compartilhar este post


Link para o post
Compartilhar em outros sites

fiz uma pequena adaptação...

 

PHP

[*]

[*]<?

[*] $arq = 'teste.txt';

[*] $fsource = (isset($aqr)) ? $arq : "";

[*]

[*] $abre = fopen($fsource,"r");

[*] $learq = fread($abre,filesize($fsource));

[*] $tparq = filetype($fsource);

[*] fclose($abre);

[*]

[*] header('Content-type: application/' . $tparq);

[*] header('Content-disposition: attachment; filename=' . $fsource);

[*] echo $learq;

[*]

[*]?>

[*]

 

mas deu erro.... :(

 

Warning: fread(): supplied argument is not a valid stream resource in /home/micropinhal/www/andre_php/teste.php on line 7

 

Warning: fclose(): supplied argument is not a valid stream resource in /home/micropinhal/www/andre_php/teste.php on line 9

 

Warning: Cannot modify header information - headers already sent by (output started at /home/micropinhal/www/andre_php/teste.php:7) in /home/micropinhal/www/andre_php/teste.php on line 11

 

Warning: Cannot modify header information - headers already sent by (output started at /home/micropinhal/www/andre_php/teste.php:7) in /home/micropinhal/www/andre_php/teste.php on line 12

Sabe pq?

Compartilhar este post


Link para o post
Compartilhar em outros sites

O arquivo ta com permissão 777 ?chmod 777veja está e fala ai ....

Compartilhar este post


Link para o post
Compartilhar em outros sites

você tem que passar o path do arquivo. ex:vou montar uma arvore-> txtsdownload.phpentao para encontrar seria:$file = "txts/file.txt";se mesmo assim nao der encontre com path todo$file = "C:/WWW/txts/file.txt";[]'s

Compartilhar este post


Link para o post
Compartilhar em outros sites

to ficando loco...

 

o arquivo php está na mesma pasta q o arquivo txt que precisa ser baixado...

 

mesmo assim fiz esse teste:

 

PHP

[*]

[*]<?

[*] $arq = 'www/andre_php/teste.txt';

[*] $fsource = (isset($aqr)) ? $arq : "";

[*]

[*] $abre = fopen($fsource,"r");

[*] $learq = fread($abre,filesize($fsource));

[*] $tparq = filetype($fsource);

[*] fclose($abre);

[*]

[*] header('Content-type: application/' . $tparq);

[*] header('Content-disposition: attachment; filename=' . $fsource);

[*] echo $learq;

[*]

[*]?>

[*]

 

Mas o erro continua...... :(

Compartilhar este post


Link para o post
Compartilhar em outros sites

agora tenho a impressao que esta errado...www/andre_php/teste.txtisso non existe :Sem linux seria:/home/www/andre_php/teste.txte em windowsC:/www/andre_php/teste.txtpoe a path completa ![]'s

Compartilhar este post


Link para o post
Compartilhar em outros sites

To me sentindo o kra mais burro deste forum.... hehehehe

 

o aqruivo a ser baixado está no servidor da HostNet que é linux neste caso.

 

tentei assim...

 

PHP

[*]

[*]<?

[*] $arq = 'home/www/andre_php/teste.txt';

[*] $fsource = (isset($aqr)) ? $arq : "";

[*]

[*] $abre = fopen($fsource,"r");

[*] $learq = fread($abre,filesize($fsource));

[*] $tparq = filetype($fsource);

[*] fclose($abre);

[*]

[*] header('Content-type: application/' . $tparq);

[*] header('Content-disposition: attachment; filename=' . $fsource);

[*] echo $learq;

[*]

[*]?>

[*]

 

Mas mesmo assim continua dando pau..... :blink:

 

Se tiver mais alguma idéia.....

Compartilhar este post


Link para o post
Compartilhar em outros sites

PHP

[*]<?

[*]// Definindo tipo do arquivo a ser enviado

[*]header("Content-type: application/text");

[*]

[*]// Nome do arquivo a ser enviado em 'filename='

[*]header("Content-Disposition: attachment; filename=novo_arquivo.txt")//no lugar de novo_arquivo.txt você coloca o nome do arquivo q será baixado.

[*]

[*]// Lendo o arquivo para uma variável

[*]$file = "arquivo.txt"//Aki você coloca o arquivo original.

[*]$fop = fopen($file, "r" );

[*]$out = fread($fop,filesize($file));

[*]fclose($fop);

[*]

[*]// Enviando arquivo

[*]readfile($out);

[*]

[*]?>

 

Tenta ai amigo http://forum.imasters.com.br/public/style_emoticons/default/joia.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

fala aí heliosal.....

 

Tentei, mas infelismente não deu.... :(

 

olha o código aí

 

PHP

[*]

[*]<? 

[*]// Definindo tipo do arquivo a ser enviado 

[*]header("Content-type: application/text")

[*]

[*]// Nome do arquivo a ser enviado em 'filename=' 

[*]header("Content-Disposition: attachment; filename=texto_baixado.txt")//no lugar de novo_arquivo.txt você coloca o nome do arquivo q será baixado. 

[*]

[*]// Lendo o arquivo para uma variável 

[*]$file = "/home/micropinhal/www/andre_php/teste.txt"//Aki você coloca o arquivo original. 

[*]$fop = fopen($file, "r" )

[*]$out = fread($fop,filesize($file)); 

[*]fclose($fop)

[*]

[*]// Enviando arquivo 

[*]readfile($out)

[*]?>

[*]

 

Ele baixa o arquivo teste.php... que é o arquivo q tem o código assima e neste arquivo baixado tem a seguinte mensagem de erro...

 

<br />

<b>Warning</b>:  readfile(ndfhsfdkj): failed to open stream: No such file or directory in <b>/home/micropinhal/www/andre_php/teste.php</b> on line <b>15</b><br />

Alguma idéia???..... :D

 

A URL é: www.micropinhal.com.br/andre_php/teste.php

Compartilhar este post


Link para o post
Compartilhar em outros sites

yyyyyyyyyyyyaaaaaaaaaahhhhhhhhhhhhhhhhoooooooooooooooo!!!!!!!!!!!!!!!!!

 

Funcionou..... depois de tanto tempo tentando funcionou...... hehehehehe

 

 

Valeu galera....

 

Graças a vcs!!!!!!!!!!

 

:) :D :P http://forum.imasters.com.br/public/style_emoticons/default/clap.gif http://forum.imasters.com.br/public/style_emoticons/default/grin.gif http://forum.imasters.com.br/public/style_emoticons/default/joia.gif :lol: :rolleyes: http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif http://forum.imasters.com.br/public/style_emoticons/default/yes.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ei galera.... acho q minha comemoração foi preciptada d +..... :(

 

o problema agora é o seguinte:

 

dentro de www.micropinhal.com.br/andre_php/ tem um arquivo chamado texto.txt. Existe também outro arquivo chamado teste.php.

 

A idéia é que quando a pessoal clicar no link q chama o teste.php seja rodado um script que faça o download do arquivo texto.txt.

 

Com o script abaixo q vcs me ajudaram a construir.... ele faz o download.... o problema é que o nome do arquivo ao invés de vir como "TEXTO.TXT" está vindo como "TESTE.PHP".

 

O conteúdo é do "TEXTO.TXT" e está correto... mas o nome do arquivo vem como "TESTE.PHP".

 

Se puder... acesse o link: www.micropinhal.com.br/andre_php/teste.php

 

O código está aí....

PHP

[*]

[*]<? 

[*]// Definindo tipo do arquivo a ser enviado 

[*]header("Content-type: application/text")

[*]

[*]// Nome do arquivo a ser enviado em 'filename=' 

[*]header("Content-Disposition: attachment; filename=texto_baixado.txt")//no lugar de novo_arquivo.txt você coloca o nome do arquivo q será baixado. 

[*]

[*]// Lendo o arquivo para uma variável 

[*]$file = "/home/micropinhal/www/andre_php/texto.txt"//Aki você coloca o arquivo original. 

[*]$fop = fopen($file, "r" )

[*]$out = fread($fop,filesize($file)); 

[*]fclose($fop)

[*]

[*]// Enviando arquivo 

[*]echo $out; 

[*]

[*]?>

[*]

 

Alguém tem alguma idéia do porque o nome do arquivo está vindo errado?? :blink:

Compartilhar este post


Link para o post
Compartilhar em outros sites

<?

$arquivo_nome = "texto.txt"; // nome para o arquivo baixado

$caminho = realpath(".")."texto.txt"; // caminho físico real do arquivo

 

$arquivo_peso = file_size($caminho);  // tamanho em bytes

$tipo = "application/text";                 // tipo do conteudo

 

$tam = $arquivo_peso;

header("Content-type: ".$tipo);

header("Content-Length: ".$tam);

header("Content-Disposition: attachment; filename=".$arquivo_nome);

 

readfile($caminho);

?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

e aí... hinon.....

 

falei a tentativa... mas o script do jeito q você me passou ele nem roda....

 

PHP

[*]

[*]<?

[*]$arquivo_nome = "texto.txt"// nome para o arquivo baixado

[*]$caminho = realpath(".")."/texto.txt"// caminho físico real do arquivo

[*]

[*]$arquivo_peso = filesize($caminho); // tamanho em bytes

[*]$tipo = "application/text";  // tipo do conteudo

[*]

[*]$tam = $arquivo_peso;

[*]header("Content-type: ".$tipo);

[*]header("Content-Length: ".$tam);

[*]header("Content-Disposition: attachment; filename=".$arquivo_nome);

[*]

[*]readfile($caminho);

[*]?>

[*]

 

acessa aí www.micropinhal.com.br

 

então voltei ao problema do post anterior...

 

Ei galera.... acho q minha comemoração foi preciptada d +..... 

 

o problema agora é o seguinte:

 

dentro de www.micropinhal.com.br/andre_php/ tem um arquivo chamado texto.txt. Existe também outro arquivo chamado teste.php.

 

A idéia é que quando a pessoal clicar no link q chama o teste.php seja rodado um script que faça o download do arquivo texto.txt.

 

Com o script abaixo q vcs me ajudaram a construir.... ele faz o download.... o problema é que o nome do arquivo ao invés de vir como "TEXTO.TXT" está vindo como "TESTE.PHP".

 

O conteúdo é do "TEXTO.TXT" e está correto... mas o nome do arquivo vem como "TESTE.PHP".

 

Se puder... acesse o link: www.micropinhal.com.br/andre_php/teste.php

 

O código está aí....

 

PHP

 

 

 

<? 

// Definindo tipo do arquivo a ser enviado 

header("Content-type: application/text"); 

 

// Nome do arquivo a ser enviado em 'filename=' 

header("Content-Disposition: attachment; filename=texto_baixado.txt"); //no lugar de novo_arquivo.txt você coloca o nome do arquivo q será baixado. 

 

// Lendo o arquivo para uma variável 

$file = "/home/micropinhal/www/andre_php/texto.txt"; //Aki você coloca o arquivo original. 

$fop = fopen($file, "r" ); 

$out = fread($fop,filesize($file)); 

fclose($fop); 

 

// Enviando arquivo 

echo $out; 

 

?>

 

 

 

Alguém tem alguma idéia do porque o nome do arquivo está vindo errado??

Compartilhar este post


Link para o post
Compartilhar em outros sites

o que exatamente voce quer?acabei de entra em:www.micropinhal.com.br/andre_php/teste.phpe abriu a telinha de download para teste.txtnao era isso que voce queria? oO[]'s

Compartilhar este post


Link para o post
Compartilhar em outros sites

kramba....

 

então não entendo.... :blink:

 

no meu micro.... ele abre uma tela pra download de teste.PHP

 

no arquivo baixado tem o conteúdo correto..... o do teste.txt... mas o nome do arquivo vem errado como teste.PHP....

 

pq no meu micro dá errado....

 

vou tentar fazer o download por outro micro.....

 

alguém tem idéia do q acontece?

 

http://forum.imasters.com.br/public/style_emoticons/default/cry.gif

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.