2013-04-11 3 views
0

Я разрабатываю приложение, которое позволяет пользователю загружать файл Excel с обычным контентом (не более нескольких Мб).IE8 на некоторых страницах файл загрузки не работает

В IE9 файл загружается отлично, но на IE8 некоторые из страниц, которые разрешают загрузку, не работают.

Новая страница открывается и закрывается сразу без отображения панели загрузки.

Заголовок управления кешем установлен в закрытый.

Я отключил все мои 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, проблема в том, что я не вижу никаких изменений в ответе.

благодаря

+0

Имеет ли переменная вашего файла расширение файла? –

+0

да расширение файла xlsx – AMember

ответ

1

Если кто-нибудь увидеть этот пост, я нашел причину проблемы. IE8 имеет политику безопасности, которая не позволяет запускать загрузку файла непосредственно из запроса сценария.

Поскольку я вызывал серию аякс-вызовов на сервер, запрашивающих состояние создания файла, и когда файл был готов, вы получите вызов для загрузки, IE отменил его.

Чтобы переопределить политику IE8, когда процесс создания файла завершился, я вынул клиенту окно со ссылкой на файл, когда эта ссылка была нажата, файл успешно загружен.

Я надеюсь, что это поможет кому-то в один прекрасный день ...

 Смежные вопросы

  • Нет связанных вопросов^_^