2015-01-22 2 views
0

От обработчика я придаю в ответ PDF-документе в MemoryStream:ТипСодержимого применения/PDF не работает в сафари

  context.Response.Clear(); 
      MemoryStream ms = new MemoryStream(pdfByte); 
      context.Response.AddHeader("content-disposition", 
     "attachment;filename=myDoc.pdf"); 
      context.Response.ContentType = "application/pdf"; 
      context.Response.Buffer = true; 
      ms.WriteTo(context.Response.OutputStream); 
      context.Response.End(); 

Во всех браузерах работы совершен, но в сафари скачали документ имеет этот формат имя =>myDoc .pdf.txt Некоторые предложения, как решить?

ответ

0

Это то, что я обычно использую для отображения PDF-файлов в клиенте браузера:

FileStream stream = new FileStream(path, FileMode.Open, FileAccess.Read); 

var data = new byte[(int)stream.Length]; 

stream.Read(data, 0, System.Convert.ToInt32(stream.Length)); 

var cd = new System.Net.Mime.ContentDisposition 
{ 
    FileName = yourfilename, 
    Inline = false, 
}; 

Response.AddHeader("Content-Disposition", cd.ToString()); 

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

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