C# 试图在Chrome浏览器的新选项卡中打开pdf文件-未发生
我有一个Get方法,我希望在一个新的浏览器选项卡中打开一个pdf文件,但它没有发生-下面是代码C# 试图在Chrome浏览器的新选项卡中打开pdf文件-未发生,c#,asp.net-web-api,C#,Asp.net Web Api,我有一个Get方法,我希望在一个新的浏览器选项卡中打开一个pdf文件,但它没有发生-下面是代码 public void GetDoc(int id) { string fileInfo = "ID=[" + id + "] "; try { var file = this.DomainLogicUnitOfWork.UploadedDocumentManager.GetById(id); fileInfo = "FILENAME=[" +
public void GetDoc(int id)
{
string fileInfo = "ID=[" + id + "] ";
try
{
var file = this.DomainLogicUnitOfWork.UploadedDocumentManager.GetById(id);
fileInfo = "FILENAME=[" + file.FileName + "]";
Response.Clear();
Response.ContentType = file.FileContentType;
Response.AppendHeader("content-disposition", "attachment; filename=" + file.FileName);
Response.OutputStream.Write(file.DocumentImage, 0, file.DocumentImage.Length);
Response.Output.Flush();
Response.End();
}
catch (Exception ex)
{
LogHandler.LogError(4617, "Error Downloading Document " + fileInfo, ex);
throw ex;
}
}
我的url打开正确:当点击浏览器地址的开头时,它会给出一个警告,还有一件事是Word和其他文档正在下载,这意味着它们工作正常,但问题只是PDF文件。任何建议或意见—
谢谢各位朋友。用双引号括起来解决了如下问题:
Response.AppendHeader(“内容处置”,$“附件;文件名=\“{file.filename}\”)代码>文件内容类型是否正确?另外,您使用的是哪个版本的.Net?有比这更简单的方法返回文件。响应从何而来?文件内容类型是application/pdf格式-正确吗?如果我添加这一行-它工作正常-但是当用户下载文件时,我如何给出文件名-如果(File.FileContentType.ToLower()!=“application/pdf”)响应。AppendHeader(“内容处置”,“附件;文件名=”+文件名);,Response.AppendHeader是包含在双引号中的问题,解决了如下问题:Response.AppendHeader(“内容处置”,$“附件;文件名=\“{file.filename}\”);永远不要抛出ex代码>其中ex
是捕获的异常。您将丢失堆栈跟踪。相反,只要做抛出代码>。