Загрузка файла C # с проблемой Firefox через https - PullRequest
0 голосов
/ 08 марта 2011

У меня очень странная проблема только с Firefox (прекрасно работает с IE и Chrome), когда я пытаюсь загрузить файл, хранящийся в БД SQL. Проблема возникает только тогда, когда пользователь пытается сохранить файл на своем компьютере, так как он не может распознать расширение файла. Он отлично работает, если пользователь пытается открыть его, и браузер может определить, является ли он файлом Word, Excel или PDF. Вот мой блок кода:

Attachments attach = AttachmentsSession[e.Item.ItemIndex] as Attachments;
string extension = attach.Extension;
byte[] bytFile = attach.AttachmentData;
string fileName = attach.Name;

Response.ClearHeaders();
Response.Clear();
Response.Buffer = true;

if (extension == ".doc")
{
   Response.ContentType = "application/vnd.ms-word";
   Response.AddHeader("content-disposition", "attachment;filename=" + fileName);
}

else if (extension == ".docx")
{
   Response.ContentType = "application/vnd.openxmlformats-officedocument.wordprocessingml.document";
    Response.AddHeader("content-disposition", "attachment;filename=" + fileName);
}

Response.Charset = "";
Response.BinaryWrite(bytFile);
HttpContext.Current.ApplicationInstance.CompleteRequest();
Response.End();

Ответы [ 2 ]

2 голосов
/ 08 марта 2011

Я не могу комментировать пост ProNeticas, поэтому:

«application / word» не является распознанным типом пантомимы, менее всего для .docx, и я сомневаюсь, что браузер будет знать, что с ним делать.

Правильный тип пантомимы для .docx - application/vnd.openxmlformats-officedocument.wordprocessingml.document, а уже имеющийся у него тип пантомимы - для .doc

См. Типы Office Mime

0 голосов
/ 08 марта 2011

Попробуйте это ...

Response.AddHeader('Content-type', 'application/msword');
Response.AddHeader('Content-Disposition', 'attachment; filename="file.docx"');
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...