我在MVC项目中有一个链接,通过点击浏览器中下载的PDF链接,基于数字的检索部分由WebApi服务完成,该服务将PDF作为字节数组返回,在我的MVC中我下载PDF 。
这是在本地工作,即使webAPI是生产它正在工作。但是当我在服务器上传项目时,PDF下载无效。我在IE和Chrome中没有得到任何东西,但在Firefox中,我在控制台中得到了这个,我不确定这是不是为什么不显示PDF。
未声明纯文本文档的字符编码。如果文档包含US-ASCII范围之外的字符,则文档将在某些浏览器配置中使用乱码文本进行渲染。需要在传输协议中声明文件的字符编码,或者文件需要使用字节顺序标记作为编码签名。
这是我调用WebAPI并在ASP.NET MVC中下载PDF的代码:
[HttpGet]
public FileResult openPdf(string FileName, string Number)
{
try
{
string completeFileName = FileName + ".pdf";
byte[] pdfByte = DownloadFile(completeFileName, RemoteRefNumber);
return File(pdfByte, "application/pdf", completeFileName);
}
catch (Exception e)
{
return null;
}
}
internal byte[] DownloadFile(string FileName, string Number)
{
string url = string.Empty;
url = ConfigurationManager.AppSettings["RefTest"].ToString();
try
{
string serverUrl = string.Format(url + "GetPdfName/GetPdfName?Number={0}", Number);
var client = new System.Net.WebClient();
client.Headers.Add("content-disposition", string.Format("inline;FileName=\"{0}\"", FileName));
return client.DownloadData(serverUrl);
}
catch (Exception e)
{
return null;
}
}
答案 0 :(得分:0)
它在本地正常工作的事实表明该问题是特定于服务器的问题。您可能想要思考服务器的安全设置,以防止下载到pdf。