Come utilizzare il CSV MIME-tipo?
-
29-08-2019 - |
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?
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"');