c# asp.net 开发,直接在浏览器框架里打开pdf doc和xls文件的问题
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c# asp.net 开发,直接在浏览器框架里打开pdf doc和xls文件的问题相关的知识,希望对你有一定的参考价值。
前两天发了帖子,不知道为什么没有了。
我写的一段代码,想在浏览器的框架里直接打开pdf、doc和xls文件。
后台代码是:
string fileName = "201096218686";
string p = "201096198974.pdf";
string filePath = Server.MapPath("DataFile/" + p);
Response.ClearContent();
Response.ClearHeaders();
string FilePost = filePath.Substring(filePath.Length - 3).ToLower();
switch (FilePost)
case "pdf":
Response.ContentType = "application/PDF";
break;
case "doc":
Response.ContentType = "application/msword";
break;
case "xls":
Response.ContentType = "application/vnd.ms-excel";
break;
default:
Session["ErrorInfo"] = "不支持的文件格式:" + FilePost;
Response.Redirect("ErrorPage.aspx");
break;
Response.WriteFile(filePath);
Response.Flush();
Response.Close();
Session.Remove("Report");
此代码我在网上找的。
两件事:1,请帮我注释一下代码的意义,谢谢。
2,这个代码打开pdf,没问题,直接在浏览器框架中打开pdf文件。但是一旦换成doc和xls,就会有下载提示:直接打开;下载;取消。选择直接打开的话,会调用word和excel将文件打开。请问,如何操作,可以使得这3种类型的文件都能够在浏览器框架中直接打开?
3,如若能够实现防修改、防拷贝、防下载保存的目的就更好了。
*********************************************
回答最对的朋友,我会直接提高悬赏给您的!
或者C#有什么控件,可以放在aspx页面上,这个控件可以显示doc、xls和pdf的文件内容?
string p = "201096198974.pdf";//定义文件名
string filePath = Server.MapPath("DataFile/" + p);//转换为物理路径
Response.ClearContent();//清空缓冲区内容
Response.ClearHeaders();//清空缓冲区HTTP头
string FilePost = filePath.Substring(filePath.Length - 3).ToLower();//取扩展名
switch (FilePost)
case "pdf"://PDF文件
Response.ContentType = "application/PDF";//设置HTTP头为PDF文档其它类似
break;
case "doc":
Response.ContentType = "application/msword";
break;
case "xls":
Response.ContentType = "application/vnd.ms-excel";
break;
default:
Session["ErrorInfo"] = "不支持的文件格式:" + FilePost;
Response.Redirect("ErrorPage.aspx");
break;
Response.WriteFile(filePath);//写入客户端
Response.Flush();//客户更新
Response.Close();//写入关闭
Session.Remove("Report");//移除"Report"Session
来源http://www.xudan123.com
参考资料:http://www.xudan123.com
参考技术A 我也正想实现这样的功能,我QQ522801398,一起研究C# ASP.NET怎么手动给GridView赋值,不从数据库中读取?
不要从数据库中读取,直接后台代码中用程序来赋值,生成多行的GridView,然后绑定。
自己写一个datatable,然后数据源等于datatable就可以了,不会建datatable查下资料。 参考技术A 你可以在后台自己做一个DataSet,然后将这个DataSet与GridView绑定,这样就行了 参考技术B 用datasource绑定datatable或list的方式,给list或datatable赋值然后重新绑定给gridview以上是关于c# asp.net 开发,直接在浏览器框架里打开pdf doc和xls文件的问题的主要内容,如果未能解决你的问题,请参考以下文章
asp.net 如何在框架页上(frameset)上弹出一个层来
c#一个解决方案里包含.netcore3.1和asp.net两个项目,能正常发布iis吗?