Почему FireFox не включает расширение .xml при загрузке файла? - PullRequest
5 голосов
/ 13 июля 2009

OK. Я уверен, что он загружает XML-файлы с расширением .xml, но мне интересно, чего здесь не хватает в коде, чтобы расширение .xml отсутствовало в загруженном файле.

Примечание: это работает в IE 6+ (не пробовал браузеры на базе WebKit или Opera)

    private void GenerateXmlAttachment(string xmlInStringFormat, string fileName)
    {
    // Where fileName = "someFile.xml"
        HttpResponse response = HttpContext.Current.Response;
        response.Clear();
        response.Charset = string.Empty;
        response.ContentEncoding = Encoding.Default;

    response.AddHeader("Content-Disposition", "attachment;filename=" + fileName);
        response.AddHeader("Content-Length", xmlInStringFormat.Length.ToString());
    response.ContentType = "text/xml";          

    response.Write(xmlInStringFormat);
        response.Flush();
        response.End();

    }

Идеи кому-нибудь?

Ответы [ 3 ]

7 голосов
/ 13 июля 2009

Попробуйте изменить:

response.AddHeader ("Content-Disposition", "attachment; filename =" + fileName);

Кому:

response.AddHeader («Content-Disposition», «attachment; filename =» + HttpUtility.UrlEncode (fileName));

Код работает для всех браузеров (включая Firefox, который мы активно используем).

6 голосов
/ 03 мая 2011

Решены проблемы пространства Firefox. Окружите ваше имя файла кавычками.

Измените код ниже

response.AddHeader("Content-Disposition", "attachment;filename=" + fileName);

до

response.AddHeader("Content-Disposition", "attachment;filename=\"" + fileName + "\"");
3 голосов
/ 13 июля 2009

В вашем имени файла есть пробел? Firefox может иметь проблемы с этим.

См. Этот блог для более подробной информации:

http://blog.mjjames.co.uk/2009/04/content-disposition-in-different.html

...