Я разрабатываю приложение, которое позволяет пользователю загружать файл excel с обычным содержимым (не больше нескольких МБ).
В IE9 файл загружается отлично, но в IE8 некоторые страницы, позволяющие загрузку, не работают.
Новая страница открывается и сразу же закрывается без отображения панели загрузки.
Заголовок управления кешем имеет значение private.
Я отключил все свои добавления IE8.
Я сопоставил ответ сервера как для страницы, которая позволяет сохранять файл, так и для той, которая не работает, и они точно совпадают (кроме пути)
Я не знаю, почему в некоторых случаях файл загружается идеально, а в других нет.
Вот код на стороне сервера, который я использую для загрузки файла:
protected void GetExportedFile()
{
string filename = Form("filename");
if (string.IsNullOrEmpty(filename))
{
Logger.Instance.Write("GetExportedFile is missing the parameter filename");
Response.Redirect("ErrorPage.aspx");
}
string filePath = Context.Server.MapPath("****/****/" + filename);
Response.ClearHeaders();
Response.ClearContent();
SetContentType(ContentType.Excel);
Response.AddHeader("Content-Disposition", string.Format("attachment; filename={0}", filename));
Response.WriteFile(filePath);
Response.Flush();
try
{
File.Delete(filePath);
}
catch (Exception ex)
{
Logger.Instance.Write(
"GetExportedFile failed to delete the file '" + filePath +
"', Error: " + ex.ToString(), "Error");
}
try
{
Response.End();
}
catch (ThreadAbortException ex)
{
//Don't add anything here.
//because if you write here in Response.Write,
//that text also will be added to your text file.
}
}
Я должен упомянуть, хотя я не думаю, что это уместно, что перед загрузками, которые не работают в IE8, я делаю несколько вызовов ajax, чтобы получить уведомление, если генерация excel завершена, а на странице, которая работает, я этого не делаю процедура.
Я также хотел бы добавить, что мое приложение находится за брандмауэром приложений (F5), и когда он деактивирован, все загрузки работают в IE8, проблема в том, что я не вижу никаких изменений в ответе.
Благодарность