Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
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?
>
De uma olhada neste link:
http://blog.thiagobelem.net/forcando-o-download-de-arquivos-com-php/
Nem precisa disso tudo, segue:
$filename = 'nome_do_arquivo.txt';
header('Content-type: text/plain');
header("Content-Disposition: attachment; filename=\"" . $filename . "\"");
ob_clean();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 downloadDependerá 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.
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!
>
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 parteentendi raphael barros! quanto mais formas variadas de se fazer melhor! obg
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:
>
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
De uma olhada neste link:
http://blog.thiagobelem.net/forcando-o-download-de-arquivos-com-php/