我有一个数据库,我在其中保存了pdf,word(docx)和excel等文档。我想在查看按钮单击时将它们显示在网页上。我可以使用以下方法显示pdf文件。
string embed = "<object data=\"{0}{1}\" type=\"application/pdf\" width=\"500px\"
height=\"600px\">";
ltEmbed.Text = string.Format(embed, ResolveUrl("~/Handler1.ashx?
id="+id+"&Name="+Name+""), temp);// literal control
在Handler1.ashx中,我具有以下内容
string constr = ConfigurationManager.ConnectionStrings["myConnectionString"].ConnectionString;
using (SqlConnection con = new SqlConnection(constr))
{
using (SqlCommand cmd = new SqlCommand())
{
cmd.CommandText = "select pdfdoc from repository;
cmd.Connection = con;
con.Open();
using (SqlDataReader sdr = cmd.ExecuteReader())
{
sdr.Read();
bytes = (byte[])sdr["BPM_Doc"];
}
}
con.Close();
}
context.Response.Buffer = true;
context.Response.Charset = "";
context.Response.Cache.SetCacheability(HttpCacheability.NoCache);
context.Response.ContentType = "application/pdf";
context.Response.BinaryWrite(bytes);
context.Response.End();
我如何使用相同的方法来显示单词和excel。我的Word文档也有图像。
简短的答案是您不能-至少不是您的处理方式,即使您在自己的计算机上安装了Office套件。
PDF文档由大多数浏览器使用自己的Adobe PDF阅读器实现来处理-我怀疑您的浏览器正在做什么,但是Microsoft Office文档使用多种模仿类型,从较旧的Word文件的application/ms-word
到[C0 ]用于新一代Office,因此内置的浏览器支持甚至显示它们在技术上将不可行,或者受许可证限制。
检出此文档查看器以将阅读器/查看器直接构建到您的项目中:
[application/vnd.openxmlformats-officedocument.wordprocessingml.document
from ASP.NET Document Viewer]
注意:无论如何这都是非免费,它实际上是相当昂贵的,我希望有人能找到一个便宜的运气。
[此外,不要满足于仅向用户提供文件本身,除非您很高兴他们应该有打开文件的方法。在我的工作中,与我们打交道的最终用户没有按计划在计算机上安装Microsoft Office(实际上是通过许可),因此,通过PDF文档提供信息是唯一的方法。