Asp.net mvc 无法使用MVC在浏览器中显示PDF文件
我面临一个问题,我无法在任何使用MCV的web浏览器中显示PDF文件。 我没有得到任何错误,只是给我看D�*�光伏�B/���s�梓������������ 我正在使用Bootstrap、Jquery和MVC。 下面是显示PDF的示例代码Asp.net mvc 无法使用MVC在浏览器中显示PDF文件,asp.net-mvc,asp.net-mvc-4,Asp.net Mvc,Asp.net Mvc 4,我面临一个问题,我无法在任何使用MCV的web浏览器中显示PDF文件。 我没有得到任何错误,只是给我看D�*�光伏�B/���s�梓������������ 我正在使用Bootstrap、Jquery和MVC。 下面是显示PDF的示例代码 public FileResult OpenDocument(int Id) { byte[] data = lst.File; // retrieve byte from db. string mimeType
public FileResult OpenDocument(int Id)
{
byte[] data = lst.File; // retrieve byte from db.
string mimeType = "application/pdf";
if (mimeType != null)
{
Response.ContentType = "application/pdf";
Response.AddHeader("content-length", data.Length.ToString());
//Response.BinaryWrite(data);
}
return File(data, mimeType);
}
请帮助我或建议我。
提前谢谢。这样就可以了
如果希望它在浏览器窗口中打开pdf,只需删除FileDownloadName行
public ActionResult OpenDocument(int Id)
{
try
{
byte[] data = lst.File; // retrieve byte from db.
string mimeType = "application/pdf";
FileContentResult document = new FileContentResult(data, mimeType);
document.FileDownloadName = "something.pdf";
return document;
}
catch
{
return new EmptyResult();
}
return new EmptyResult();
}
根据您的示例,您需要将
数据
传递到文件
内容结果
public ActionResult OpenDocument(int Id)
{
//Code that uses Id to retrieve 1st variable
//....
byte[] data = lst.File; // retrieve byte array from db.
if(data!=null && data.Length > 0) {
string mimeType = "application/pdf";
Response.AppendHeader("Content-Disposition", "inline; filename=" + Id + ".pdf");
return File(data, mimeType);
}
return new EmptyResult();
}
这是一个编码问题。尝试在您的回复中添加这一行
Response.Charset = "utf-8";
请注意,这现在有点过时了,但我最近在使用Rotativa/DinkToPDF时遇到了相同的问题。 结果代码很好,但我看到了�这是因为我通过ajax发布了表单 我禁用了ajax表单发布,它成功了
希望这有助于这看起来可疑:
返回文件(mimeType,mimeType)
您正在对这两个参数使用mimeType
。。。1参数不应该是文件数据或路径吗?@zgood:请将其作为答案发布,因为这正是这里的问题所在。嗨@Nishant,你尝试过我的解决方案吗?这就是我在我的应用程序中所做的,它肯定是有效的。因此,如果您实现了这一点,但仍然存在相同的问题,那么问题在于如何存储或检索Byte[]数据!默认配置是内联的。因此,这与OP的问题无关。嗨@Nkosi,谢谢你的建议,但仍然有一个问题是persist,告诉我D�*�光伏�B/���s�梓������������ 在浏览器中。请建议。谢谢。**应用您的建议后,浏览器中的pdf显示仍为:**%pdf-1.3%���� 12 0 obj endobj 31 0 obj/Filter/FlateDecode/ID[]/Index[12 31]/Info 11 0 R/Length 93/Prev 54710/Root 13 0 R/Size 43/Type/XRef/W[1 2 1]>>流h�bbdb`Z$l��F��$�8.��C�����-�A.�� v�bՁX�@�k2��五十) *L� U�D�~0}�1 endstream endobj startxref 0%%EOF 42 0 obj流h�b``f
�ea
�<代码>@�+你看了其他答案。如果这对你不起作用,那么你应该看看它们是否起作用。