Joomla.it Forum
Joomla! 3 => Joomla! 3 => : d.abstego 13 May 2016, 15:46:39
-
Buongiorno!
Ho sviluppato un report per la gestione dei documenti. Il cliente che si collega visualizza un report....seleziona i record che interessano e decide di effettuare il download dei file associati. Ogni record corrisponde ad un file in una specifica cartella del server.
Ho utilizzato un script PHP che posto di seguito
header('Content-Description: File Transfer');
header('Content-Type: application/octet-stream');
header('Content-Disposition: attachment; filename="'.basename($server_file).'"');
header('Expires: 0');
header('Cache-Control: must-revalidate');
header('Pragma: public');
header('Content-Length: ' . filesize($server_file));
ob_clean();
flush();
readfile($server_file);
exit;
Dove la variabile $server_file contiene il path completo del file......
La domanda è : Perchè (utilizzando qualsiasi browser) non parte il download oppure NON si apre la popup che mi chiede dove salvare il file?
C'è quaclcosa di sbagliato in questo script? Avete qualche idea o consiglio per indicarmi una soluzione?
GARZIE!!!!!!!!!!!
-
Non è che prima di settare questi header hai già stampato qualcosa? Gli header sono permalosi sotto questo punto di vista
-
Per stampa intendi quale istruzione "echo" qua e la?..........qualcosa c'è...ma nel caso come ne esco?
Oppure joomla offre qualche istruzione/libreria per chiamare più agilmente la funzione di download?
-
si, intendo gli echo e qualunque altro tipo di contenuto html.
Gli header sono ciò che il server manda prima ancora del contenuto della pagina. Nel momento in cui hai mandato al browser anche un solo tag o carattere è già troppo tardi per inviare altri header o sovrascrivere quelli esistenti.
Non credo che ci siano altre soluzioni per mandare in stream un file, se riscontri questo problema probabilmente stai sbagliando l'approccio con il mvc di joomla.