Saya perlu mengirim file CSV dalam respons HTTP. Bagaimana saya bisa mengatur respons keluaran sebagai format CSV?
Ini tidak bekerja:
Response.ContentType = "application/CSV";
Menggunakan text/csv
adalah jenis yang paling tepat.
Anda juga harus mempertimbangkan untuk menambahkan Content-Disposition
tajuk ke respons. Seringkali teks / csv akan dimuat oleh Internet Explorer langsung ke instance Excel yang dihosting. Ini mungkin atau mungkin bukan hasil yang diinginkan.
Response.AddHeader("Content-Disposition", "attachment;filename=myfilename.csv");
Di atas akan menyebabkan dialog file "Simpan sebagai" muncul yang mungkin Anda inginkan.
Jenis MIME dari CSV adalah teks / csv menurut RFC 4180 .
sumber
Gunakan
text/csv
sebagai tipe konten.sumber
Selama bertahun-tahun saya telah mengasah satu set header yang sempurna untuk ini yang berfungsi dengan baik di semua browser yang saya tahu
sumber
Coba salah satu dari tipe mime ini (dari sini: http://filext.com/file-extension/CSV )
Juga, tipe-pantomim mungkin peka terhadap huruf ...
sumber
Gunakan saja seperti itu
sumber
return new EmptyResult()
untuk mendapatkan nama file untuk tetap. Kalau tidak, IE akan mencoba dan menyimpan file sebagaiActionName.htm
.Di ASP.net MVC, Anda dapat menggunakan
FileContentResult
danFile
metode:sumber
Saya telah menemukan bahwa masalah dengan IE adalah bahwa ia mengendus data yang dikembalikan dan memutuskan sendiri tentang tipe konten yang menurutnya telah dikirim. Ada sejumlah efek samping yang disebabkan oleh hal ini, seperti selalu membuka dialog saveAs untuk file teks karena Anda menggunakan kompresi trasnfer data. Solusinya adalah (dalam kode php) ......
sumber
Mengatur jenis konten dan disposisi konten seperti dijelaskan di atas menghasilkan hasil yang sangat bervariasi dengan browser yang berbeda:
IE8: Dialog SaveAs seperti yang diinginkan, dan Excel sebagai aplikasi default. 100% bagus
Firefox: Dialog SaveAs memang muncul, tetapi Firefox tidak tahu itu adalah spreadsheet. Menyarankan untuk membukanya dengan Visual Studio! 50% bagus
Chrome: petunjuknya diabaikan sepenuhnya. Data CSV ditampilkan di browser. 0% bagus
Tentu saja dalam semua kasus ini saya merujuk ke browser saat mereka keluar dari kotak mereka, tanpa kustomisasi pemetaan mime / aplikasi.
sumber
Saya sarankan untuk memasukkan karakter '/' di depan 'myfilename.cvs'
Saya harap Anda mendapatkan hasil yang lebih baik.
sumber
Untuk C # MVC 4.5 yang perlu Anda lakukan seperti ini:
sumber