Ir para conteúdo

POWERED BY:

Arquivado

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

deckards2bibi

[Resolvido] arquivo txt em php para download

Recommended Posts

bom gente eu fiz um form, onde esse mesmo envia para o banco de dados ate ai OK.

 

dai eu queria fazer o seguinte pega esses dados que foram gravados em banco de dados e fazer com que ele gavasse em um arquivo .txt

 

so que nao sei como fazer ja li o fopen fwrite e so me confundo mas

 

sera que alguem que consiga fazer possa me da uma ajuda nisso

como posso puxar os arquivos do banco de dado para uma arquivo .txt e fazer ele pra download

Compartilhar este post


Link para o post
Compartilhar em outros sites

a sua dificuldade está em qual ponto específico?

 

até onde conseguiu fazer?

 

pode postar o que fez ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você pode usar também a função file_put_contents. Ela é equivalente a chamar fopen, fwrite e fclose sucessivamente. Basta passar o nome do arquivo e os dados que serão gravados nesse arquivo, se o arquivo não existir, ele será criado. Se o arquivo já existir, o conteúdo anterior dele será sobrescrito, isso é, substituído pelo novo conteúdo, a menos que a flag FILE_APPEND seja dada.

 

$arquivo = "meu_arquivo.txt";
$dados = "Olá mundo!";

file_put_contents($arquivo, $dados);

 

Se o arquivo "meu_arquivo.txt" já existir, o conteúdo dele será substituído por "Olá mundo!".

 

Mas se você usar a função da seguinte forma, passando a flag FILE_APPEND, "Olá mundo!" será adicionado ao conteúdo do arquivo ao invés de substituí-lo:

file_put_contents($arquivo, $dados, FILE_APPEND);

 

Para forçar do download do arquivo, use seguinte:

header('Content-Type: application/octet-stream');
header('Content-Disposition: attachment');

readfile($arquivo);

exit;

Compartilhar este post


Link para o post
Compartilhar em outros sites

a sua dificuldade está em qual ponto específico?

 

até onde conseguiu fazer?

 

pode postar o que fez ?

 

bom dia meu caro

eu iniciei essas duas linhas

 

header('Content-type: text/plain');
header('Content-Disposition: attachment; filename="arquivo.txt"');

e quando uso elas ele cria um arquivo .txt

chamado arquivo.txt

 

como indica a linha acima

so que nao sei como colocar o conteudo do meu formulario ai dentro

lembrando que os dados desse form ta no banco de dados.

Compartilhar este post


Link para o post
Compartilhar em outros sites

os dados estão sendo exibidos na tela devido ao cabeçalho

header('Content-type: text/plain');

 

 

troque para o cabeçalho do exemplo do post #3

 

header('Content-Type: application/octet-stream');
header('Content-Disposition: attachment; filename="arquivo.txt"');

echo $conteudo_do_banco;

 

entenda que dessa forma o arquivo físico não será gerado no servidor.. o arquivo é gerado on-the-fly ao usuário "client-side"

 

se quiser salvar o arquivo no server terá que usar funções de manipulação de arquivos e diretórios

 

fopen, fwrite, etc..

http://php.net/manual/en/book.filesystem.php

 

 

dependendo do caso, por exemplo, se essse mesmo conteúdo tiver que ser baixado novamente ou por outro usuário, o ideal seria já salvá-lo em disco.

 

 

obs: os cabeçalhos são exemplos simples.

por vezes, dependendo do navegador que o usuário utiliza, terá que implementar outros parâmetros..

Não tenho aqui no momento e não lembro de cabeça. Mas acho que deve ter em algum post antigo no forum.

Compartilhar este post


Link para o post
Compartilhar em outros sites

os dados estão sendo exibidos na tela devido ao cabeçalho

header('Content-type: text/plain');

 

 

troque para o cabeçalho do exemplo do post #3

 

header('Content-Type: application/octet-stream');
header('Content-Disposition: attachment');
header('Content-Disposition: attachment; filename="arquivo.txt"');

echo $conteudo_do_banco;

 

entenda que dessa forma o arquivo físico não será gerado no servidor.. o arquivo é gerado on-the-fly ao usuário "client-side"

 

se quiser salvar o arquivo no server terá que usar funções de manipulação de arquivos e diretórios

 

fopen, fwrite, etc..

http://php.net/manual/en/book.filesystem.php

 

 

dependendo do caso, por exemplo, se essse mesmo conteúdo tiver que ser baixado novamente ou por outro usuário, o ideal seria já salvá-lo em disco.

 

meu caro o arquivo nao seria salvo no servidor nao

apenas quero pega as informaçoes que estao no serv ou seja em banco de dados

 

e coloca em .txt para o cliente baixar em uma maquina local

Compartilhar este post


Link para o post
Compartilhar em outros sites

bom.. então está aí uma solução..

afinal, entendeu o que foi postado ?

 

entendi sim

realmente deu certo aki

 

mas a duvida e a seguinte

como pego do banco de dados os dados para posta nesse arquivo txt

isso que nao consigo fazer

Compartilhar este post


Link para o post
Compartilhar em outros sites

você é iniciante na linguagem em php, certo?

 

sugiro que procure por tutoriais e exemplos de como pegar dados do banco de dados..

Compartilhar este post


Link para o post
Compartilhar em outros sites

você é iniciante na linguagem em php, certo?

 

sugiro que procure por tutoriais e exemplos de como pegar dados do banco de dados..

 

 

nao sou iniciante mas tem muita coisa que nao sei

 

 

include "conexao.php";
$sql = "SELECT * FROM cad";
$result = mysql_query($sql);

while($resultado = mysql_fetch_assoc($result)){
echo $resultado["nomeagente"];
} 

 

bom gente com esse codigo eu consigo puxar os arquivos do banco de dados

 

mas o problema e

que eu puxo todos os agente em vez de apenas um especifico

Compartilhar este post


Link para o post
Compartilhar em outros sites

Se cada linha da tabela tiver uma coluna chamada ID, por exemplo, basta que você altere a consulta colocando uma condição WHERE para pegar apenas um determinado id:

SELECT * FROM cad WHERE id=1

 

Verifique a estrutura da sua tabela 'cad' para saber qual a coluna de identificação das linhas, geralmente é a primeira e tem a flag AUTO_INCREMENT.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Se cada linha da tabela tiver uma coluna chamada ID, por exemplo, basta que você altere a consulta colocando uma condição WHERE para pegar apenas um determinado id:

SELECT * FROM cad WHERE id=1

 

Verifique a estrutura da sua tabela 'cad' para saber qual a coluna de identificação das linhas, geralmente é a primeira e tem a flag AUTO_INCREMENT.

 

sim tenho o id sim como chave primaria e auto incremento

so se eu colocar o where id=1

 

ele pega apenas o registro que tem id = 1 dai apenas esse registro e mostrado.

quando vou clicar para baixar outro arquivo de outro registro ele sempre baixara o que tem id = 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

Use a variável $_GET['id'] para selecionar qual id será baixado.

 

Na sua consulta coloque:

$sql = "SELECT * FROM cad WHERE id=" . $_GET['id'];

 

Se o nome do arquivo PHP for baixar.php, por exemplo, a URL

baixar.php?id=1 irá baixar o id 1

baixar.php?id=2 irá baixar o id 2

e assim por diante...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Use a variável $_GET['id'] para selecionar qual id será baixado.

 

Na sua consulta coloque:

$sql = "SELECT * FROM cad WHERE id=" . $_GET['id'];

 

Se o nome do arquivo PHP for baixar.php, por exemplo, a URL

baixar.php?id=1 irá baixar o id 1

baixar.php?id=2 irá baixar o id 2

e assim por diante...

 

bom deixa te explica melhor

 

eu to fazendo assim

cadastro varias pessoas atraves de um form

depois deste form

 

eu fiz um sistema de pesquisa para ver de que usuario vou poder fazer o download.

por exemplo se eu escrever JOSE

irá aparecer varios jose

 

e o codigo e este

 

<table width="638" border="1" cellspacing="5" cellpadding="10">

 <tr>
   <td width="110"><p>Nome Agente</p></td>
   <td width="120"><p>Nome do Cliente</p></td>
   <td width="114"><p>Sit. no Sistema</p></td>
   <td width="94"><p>Download</p></td>
   <td width="79"><p>Download</p></td>
   <td width="69"><p>Editar</p></td>
 </tr>
<?php 
 	$sql = "SELECT * FROM cad WHERE nome LIKE '$pesquisa%'";
$qry = mysql_query($sql);
$qtde = mysql_num_rows($qry);
$i = 0;

	if($qtde == 0){
	echo "<h1>Não foram encontrados nenhum registro no sistema.</h1>";
	}else{
		while($i<$qtde){
?>
 <tr>
   <td><p><?php echo @mysql_result($qry,$i,nomeagente); ?></p></td>
   <td><p><?php echo @mysql_result($qry,$i,nome); ?></p></td>
   <td><p><?php echo @mysql_result($qry,$i,situacaosistema); ?></p></td>
   <td><p><a href="download.php?id">download</a></p></td>
   <td><p><a href="principal.php?link=4">ALTERAR</a></p></td>
 </tr>
 	<?php 
$i++;
if($i%2==0) {
	echo "</tr>";
}
}

?>
<?php } ?>
</table>

 

quando clico em download ele redireciona para pagina

download.php

 

que tem o seguinte script

 

header('Content-Type: application/octet-stream');
header('Content-Disposition: attachment');
header('Content-Disposition: attachment; filename="arquivo.txt"');

include "conexao.php";
$sql = "SELECT * FROM cad;
$result = mysql_query($sql);
$texto ="Datacarga;NomedoAgente;CodigoCliente;Nome;Endereço;Complemento;Número;Bairro;CEP;Cidade;DDDFone;Telefone;DDDCel;Celular;Situação do Endereço;Data da Ação;Acordo?;Descrever o Acordo com o Cliente;Prazo para Pagamento";

while($resultado = mysql_fetch_assoc($result)){

echo $texto."\n".$resultado["nomeagente"];
} 

 

so que com esse codigo

quando for aperta la em download na pagina de pesquisa

independente do usuario que eu clicar ele simplesmente baixa o mesmo

eu queria poder fazer com que ele baixasse o arquivo pro usuario correto os dados corretos equivalente ao que ta no pesquisa

Compartilhar este post


Link para o post
Compartilhar em outros sites

alguem ai pra da uma força aki

 

graças a deus depois de um bom banho resolvi

 

tem haver com que nosso amigo acima falou

 

a solução foi esta passei tudo pela url com metodo GET

 

<a href="download.php?&id=<?php echo $linha[id];?>

 

depois recebi o metodo na pagina

download.php

 

$id = $_get['id'];

e fiz o seguinte select

$sql = "SELECT * FROM cad WHERE id = '$id'";


 

vlw galera muito obrigado força otima que vcs me deram ^^

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.