Ir para conteúdo

POWERED BY:

Arquivado

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

Micilini Roll

Fazer Download de arquivos .txt gerados pelo PHP ?

Recommended Posts

Olá pessoal tenho este comando aqui que gera arquivos do tipo .txt na minha pasta:

 

<?php
$fp = fopen("texto.txt", "a");
$escreve = fwrite($fp,"bloco 1 bloco 2 bloco 3");
fclose($fp);
?>

 

so que eu queria que envez de gerar na minha pasta , o php ja me mandasse diretamente para download,tem como?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Basta informar os headers corretos

$string = 'Test download string';

header('Content-type: text/plain');
header( 'Content-Length: ' . strlen( $string ) ); 
header('Content-Disposition: attachment; filename="save.txt"');

echo $string;

O que muda é que em vez de utilizar filesize vc vai utilizar strlen para informar o tamanho e também informar um nome qualquer que será utilizado no download

Compartilhar este post


Link para o post
Compartilhar em outros sites

Dependerá um pouco do público alvo.

Se for algo público precisa ser mais consistente com os cabeçalhos.

   function download( $path, $fileName = '' ){

        if( $fileName == '' ){
            $fileName = basename( $path );
        }

        header("Content-Type: application/force-download");
        header("Content-type: application/octet-stream;");
    	header("Content-Length: " . filesize( $path ) );
    	header("Content-disposition: attachment; filename=" . $fileName );
    	header("Pragma: no-cache");
    	header("Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0");
    	header("Expires: 0");
    	readfile( $path );
    	flush();
    }

// exemplos de uso da função:
// nome do arquivo é pego pela base do path
download( '/var/www/site01/files/foo.txt' );

// nome do arquivo personalizado
download( '/var/www/site01/files/foo.txt', 'ダミー' );

 

Obviamente, não pode haver nenhuma outra saída de dados (output), pois conflitará com os cabeçalhos.

Compartilhar este post


Link para o post
Compartilhar em outros sites

muito bom pessoa funcioinou aqui +1 pra todos voces!



no caso terei que marcar um como resolvido desculpe aos outros mas nesse caso @hinom alem de resolver mostrou outras coisas! fazendo assim esse topico ficar com mais conteudo ainda! obg a todos!

Compartilhar este post


Link para o post
Compartilhar em outros sites

 

Nem precisa disso tudo, segue:

$filename = 'nome_do_arquivo.txt';
header('Content-type: text/plain');
header("Content-Disposition: attachment; filename=\"" . $filename . "\"");
ob_clean();

 

$filename = 'nome_do_arquivo.txt';header('Content-type: text/plain');header("Content-Disposition: attachment; filename=\"" . $filename . "\"");ob_clean();

echo $filename; // esqueci desta parte

Compartilhar este post


Link para o post
Compartilhar em outros sites

preferi não comentar, mas a forma do post #3 é falha.. falta mais especificações e ainda possui um erro de estar diparando o content-type do arquivo

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

 

No manual tem um exemplo bem próximo do que postei:

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

 

A partir de qual post vc ta contando?

 

use o "quote" pra dizer qual está errado

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.