Я пробовал много вещей, чтобы заставить это работать, если я использую
Response.AddHeader("Content-Disposition", string.Format("attachment; filename={0}", newFileInfo.Name));
вместо
Response.AddHeader("Content-Disposition", string.Format("inline; filename={0}", newFileInfo.Name));
Это работает, но мне нужно, чтобы это отображалось в окне браузера для правильной работы. Встроенный вид работает правильно в Chrome. Я пытался использовать Response.BinaryWrite и Response.WriteFile, и это не имело никакого значения.
Я использую Internet Explorer 9.
Вот мой код:
Response.Clear();
Response.ClearHeaders();
Response.ClearContent();
Response.Buffer = true;
Response.ContentType = "application/pdf";
Response.AddHeader("Pragma", "public");
Response.AddHeader("expires", "0");
Response.AddHeader("Cache-Control", "no-cache");
Response.Cache.SetCacheability(HttpCacheability.NoCache);
string filePath = Request["file"];
string signatureFile = Request["SignatureImage"];
double xPos = Convert.ToDouble(Request["X-Pos"]);
double yPos = Convert.ToDouble(Request["Y-Pos"]);
double scale = Convert.ToDouble(Request["Scale"]);
if (!string.IsNullOrEmpty(filePath))
{
try
{
string newFile = PDFTools.SignPDF(filePath, signatureFile, xPos, yPos, scale, tempDirectory);
var newFileInfo = new FileInfo(newFile);
Response.AddHeader("Content-Disposition", string.Format("inline; filename={0}", newFileInfo.Name));
Response.AddHeader("content-length", newFileInfo.Length.ToString());
Response.TransmitFile(newFile);
Response.Flush();
Response.Close();
}
catch (Exception ex)
{
Debug.WriteLine("Error: " + ex.Message);
Debug.WriteLine("at " + ex.StackTrace);
}
finally
{
Response.End();
}
}
Спасибо за ваше время!