Загрузка файла с сервера (asp.net) в IE8 с правильным Content-Disposition и именем файла - PullRequest
0 голосов
/ 01 апреля 2010

Я загружаю файл с сервера / базы данных через страницу aspx. При использовании встроенного расположения содержимого документ открывается в правильном приложении, но имя файла совпадает с именем веб-страницы. Я хочу, чтобы документ открывался, скажем, в MS Word, но с правильным именем файла. Вот код, который я использую

Response.Buffer = true;
Response.ClearContent();
Response.ClearHeaders();
Response.Clear();
Response.ContentType = MimeType(fileName); //function to return the correct MIME TYPE
Response.AddHeader("Content-Disposition", @"inline;filename=" + fileName);
Response.AddHeader("Content-Length", image.Length.ToString());
Response.BinaryWrite(image);
Response.Flush();
Response.Close();

Итак, я хочу, чтобы файл открывался в MS Word с правильным именем файла документа, чтобы пользователь мог правильно сохранить / просмотреть.

Идеи? спасибо

Ответы [ 2 ]

1 голос
/ 01 апреля 2010

Вот код ASP.NET, который я использую (использую Delphi.NET, но вы поняли), который работал нормально для меня. Обратите внимание, что я устанавливаю заголовок Content-Disposition на attachment вместо inline:

Response.Clear();
Response.Expires = 0;
Response.ContentType := 'content type here';
Response.AppendHeader('Content-Disposition', 'attachment; filename="' + Path.GetFileName('file name here') + '"');
Response.AppendHeader('Content-Length', file size here);

Мой настоящий код немного сложнее, так как я также поддерживаю заголовок ответа Content-Encoding для клиентов, которые поддерживают сжатие gzip и deflate через заголовок запроса Accept-Encoding.

0 голосов
/ 02 апреля 2010

Убедитесь, что ваше имя файла имеет правильное расширение с вашим типом MIME.

т.е. если вы возвращаете слово document, тогда имя файла должно заканчиваться на «.doc»

Конечно, вы можете использовать другое расширение, но в этом случае разные браузеры будут обрабатывать вложение по-разному.

Также убедитесь, что имя вашего файла не содержит символов, которые не допускаются в имени файла.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...