Domanda

In un'applicazione web che sto lavorando su, l'utente può cliccare su un link a un file CSV. Non v'è alcuna intestazione impostato per il mime-type, quindi il browser solo rende come testo. Vorrei per questo file da inviare come file .csv, quindi l'utente può aprire direttamente con calc, excel, gnumeric, ecc

header('Content-Type: text/csv');
echo "cell 1, cell 2";

Questo codice funziona come previsto sul mio computer (non è che come è sempre?), Ma non funziona su un altro computer.

Il mio browser è una nightly build di 3.0.1 FF (su linux). I browser che non ha funzionato in erano IE 7 e 3.0 FF (su Windows)

Ci sono stranezze non sono a conoscenza di?

È stato utile?

Soluzione

Si potrebbe provare a forzare il browser per aprire un "Salva con nome ..." finestra di dialogo facendo qualcosa di simile:

header('Content-type: text/csv');
header('Content-disposition: attachment;filename=MyVerySpecial.csv');
echo "cell 1, cell 2";

che dovrebbe funzionare nella maggior parte i principali browser.

Altri suggerimenti

Non si specifica un linguaggio o di un quadro, ma la seguente intestazione viene utilizzato per il download di file:

"Content-Disposition: attachment; filename=abc.csv"

Con Internet Explorer spesso si devono specificare il Pragma: Intestazione pubblico, nonché per il download per funzionare correttamente ..

header('Pragma: public');

Solo i miei 2 centesimi ..

Questo codice può essere utilizzato per esportare qualsiasi file, tra cui CSV

// application/octet-stream tells the browser not to try to interpret the file
header('Content-type: application/octet-stream');
header('Content-Length: ' . filesize($data));
header('Content-Disposition: attachment; filename="export.csv"');
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top