File PHP

valep

Nuovo Utente
18 Set 2014
3
0
0
Ciao a tutti,

sto facendo una pagina in PHP dove devo a seconda di alcuni filtri da maschera fare una query e scrivere il risultato in un file e poi aprirlo, o meglio, fare venire fuori la solita finestrella con la scelta se aprirlo o scaricarlo. Ho fatto tutto ma non riesco a far aprire il file.

se uso
@header("Content-Type: application/octet-stream");
@header('Content-Disposition: attachment; filename=cippa.txt;');
@header("Content-Length: " . filesize("cippa.txt"));
readfile("cippa.txt");

mi appare correttamente la scelta sull'azione da intraprendere ma mi scrive dentro il file di testo l'html della pagina, oltre ad aprirmi il file. Ovviamente prendendo come file un pdf non succede e funzionerebbe tutto benissimo, peccato che ho proprio bisogno di produrre un txt :-(

Cosa sbaglio?

grazie,
vale
 

marino51

Utente Attivo
28 Feb 2013
2.918
164
63
Lombardia
nello script seguente trovi le due soluzioni (una è commentata, ma funzionante)
con la prima visualizzi il testo nel browser, con la seconda apri "la finestrella"
ciao
Marino
PHP:
<?php

$FileName = "PizzaMilano.txt";
$PathFile = "e:/temp/".$FileName;

if(!$PathFile){
    die($PathFile.' file not found');
} 
else
{

/*
  header('Content-Type: application/octet-stream');	// visualizza testo nel browser
  header('Content-Disposition: inline; filename="'.$FileName.'"');
  header('Content-Transfer-Encoding: binary');
  header('Content-Length: '.filesize($PathFile));
  header('Accept-Ranges: bytes');
  readfile($PathFile);
*/

  header("Cache-Control: public");
  header('Content-Description: File Transfer');		// apri - salva - annulla
  header('Content-Type: application/octet-stream');
  header('Content-Disposition: attachment; filename="'.$FileName.'"');
  header('Content-Transfer-Encoding: binary');
  readfile($PathFile);
} 
?>
 

valep

Nuovo Utente
18 Set 2014
3
0
0
Ciao,

si, alla fine avevo combinato, il "trucco" sta nel mettere tutto all'inizio della pagina e non dopo, come avevo fatto.

Grazie!
Vale