我生成文件服務器端,我希望客戶端自動打開它:它是一個XLSX文件。 Firefox只是打開文件,我在瀏覽器中看到XLSX文件的二進制內容,但我希望它通過另存爲...框打開。Firefox:打開XLSX文件不保存文件butn打開二進制
它工作正常,在Chrome中使用相同的代碼(它保存的話)而在Firefox ...
任何想法?
我生成文件服務器端,我希望客戶端自動打開它:它是一個XLSX文件。 Firefox只是打開文件,我在瀏覽器中看到XLSX文件的二進制內容,但我希望它通過另存爲...框打開。Firefox:打開XLSX文件不保存文件butn打開二進制
它工作正常,在Chrome中使用相同的代碼(它保存的話)而在Firefox ...
任何想法?
Have a look at this - Php exec and return binary
您是否正在發送適當的頭文件? 類似
header("Content-Type: application/octet-stream");
header("Content-Disposition: attachment; filename=\"yourfile.xlsx\"");
UPDATE
header('Content-Type: application/xls');
header('Content-Disposition: attachment; filename=example.xlsx');
header('Pragma: no-cache');
echo file_get_contents("/path/to/yourfile.xlsx");
UPDATE 2種
展開片的mime類型
application/vnd.ms-excel [official]
application/msexcel
application/x-msexcel
application/x-ms-excel
application/vnd.ms-excel
application/x-excel
application/x-dos_ms_excel
application/xls
更新3
關於您的JavaScript的問題,您是否試圖使用
location.href instead of window.open ??
你需要確保你發送此MIME類型的Content-Type頭: -
應用/ vnd.openxmlformats -officedocument.spreadsheetml.sheet
所以,你需要的.xslx擴展此MIME類型映射到服務器上
該文件是根已經完成了...我希望用戶能夠打開將彈出另存爲對話框的文件。但是,當我用window.open打開XLSX文件的URL時,它會在瀏覽器中顯示文件的實際二進制文件。 – Amadeus45 2009-09-24 08:18:07
查看更新... – TigerTiger 2009-09-24 08:23:04
第一次更新完成了這份工作......謝謝! – Amadeus45 2009-09-24 08:45:50