Try this:
Content-Type: text/csv; name="filename.csv"
Content-Disposition: attachment; filename="filename.csv"
In Windows browsers the MIME type is ignored after the file is downloaded and only file name extension is used to determine the corresponding application.
Also, making .CSV file open in Excel correctly is hard, because the default separator is taken from Regional settings on the machine on which the CSV is opened. Furthermore, the encoding is not determined from the file content or MIME type, so any non-ASCII characters are hard to get working.
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…