Я передаю CSV-файл в Internet Explorer. В конце потоковой передачи Internet Explorer представляет диалог Open, Save и Cancel. Если вы подождите 30 секунд после появления диалогового окна и нажмите кнопку «Открыть», Internet Explorer ничего не сделает. Это отлично работает в Firefox. Нужна ли мне другая команда, кроме Flush и End on Response? Вот код, который у меня есть:Как подключить Internet Explorer к потоку?
protected void Page_Load(object sender, EventArgs e)
{
DataTable dt = ReportService.GetAllOwnerAircraftPaymentInformation();
//Generate the report
using (MemoryStream stream = new MemoryStream())
{
StreamWriter writer = new StreamWriter(stream);
CsvHelper csvHelper = new CsvHelper();
csvHelper.DataTableToCsv(writer, dt);
writer.Flush();
//Send it to the browser
stream.Seek(0, SeekOrigin.Begin);
string fileName = string.Format("MassAVRMSDataExport{0}.csv", DateTime.Now.ToString("yyyyMMddhhmmss"));
Response.ClearHeaders();
Response.Clear();
Response.ContentType = "application/octet-stream";
Response.AddHeader("Content-Disposition", "attachment; filename=\"" + fileName + "\"");
Response.AddHeader("Content-Length", stream.Length.ToString(CultureInfo.InvariantCulture));
StreamHelper.CopyStream(stream, Response.OutputStream);
Response.Flush();
Response.End();
}
}
после первого 'Response.ContentTye 'попробуйте добавить эту строку' Response.ContentType = "application/vnd.ms-excel" 'также вы можете добавить эту строку также' Response.ContentType = "application/download" 'после строки тоже .. попробуйте обе строки .. – MethodMan
Кажется, интернет Проводнику нужен тип содержимого приложения/загрузки. Это сработало. Спасибо. –
Я добавлю это как ответ, и вы можете принять его, если хотите спасибо – MethodMan