从数据库读取pdf文件,然后在页面上做链接,点击链接后,有的用户说可以直接打开pdf文件,
有的则是出现执行读取的文件下载提示:您想保存此文件吗?名称:showfile.aspx
类型:未知文件类型,244kb
发送者:XXXXXXXX用户都是装了acrobat reader的,下面是showfile.aspx处理代码:if (Request.QueryString["sno"] != null)
{
Q12_FILES files = new Q12_FILES();
files.SERIALNO = Request.QueryString["sno"].ToString(); Encrypt objen = new Encrypt(); //加密 SqlDataReader sdr = files.Select();
if (sdr.Read())
{
Response.Clear();
Response.AddHeader("Content-Type", "application/pdf");
byte[] b = objen.DecryptByte((byte[])sdr["pdffiles"]);
Response.AddHeader("Content-Length", b.Length.ToString());
Response.BinaryWrite(b);
sdr.Close();
}
else
{
sdr.Close();
Utility.MsgBox(this.Page,"无此报告,请确认是否上传!",true);
}
objen = null;
}希望全部都可以直接打开,请帮忙解决,谢谢!
有的则是出现执行读取的文件下载提示:您想保存此文件吗?名称:showfile.aspx
类型:未知文件类型,244kb
发送者:XXXXXXXX用户都是装了acrobat reader的,下面是showfile.aspx处理代码:if (Request.QueryString["sno"] != null)
{
Q12_FILES files = new Q12_FILES();
files.SERIALNO = Request.QueryString["sno"].ToString(); Encrypt objen = new Encrypt(); //加密 SqlDataReader sdr = files.Select();
if (sdr.Read())
{
Response.Clear();
Response.AddHeader("Content-Type", "application/pdf");
byte[] b = objen.DecryptByte((byte[])sdr["pdffiles"]);
Response.AddHeader("Content-Length", b.Length.ToString());
Response.BinaryWrite(b);
sdr.Close();
}
else
{
sdr.Close();
Utility.MsgBox(this.Page,"无此报告,请确认是否上传!",true);
}
objen = null;
}希望全部都可以直接打开,请帮忙解决,谢谢!
解决方案 »
- 送分问题,欢迎来看看啊
- 实在没办法,烦人的老问题http/1.1 500 internal service error
- socket连接远程服务器问题
- .net 商铺选择功能的最优实现思路以及代码
- 如何进行自定义变量的传递?急求
- 中手帮忙啊!选择gridview某一行,向父页传值问题?...................................
- 给高手散分:关于checkboxlist自定义组合控件的items
- 当文本框的为password模式时,刷新后文本框就清空了,有没有办法让文本框的内容能保留住!
- 初学ASP.NET的问题
- 关于动态添加多个listBox控件,并且获得每个listBox 的selectindexchange事件
- NND,困了好几天的个问题
- tree删除选中的节点
Response.Clear();
Response.ClearContent();
Response.ClearHeaders();
Response.AddHeader("Content-Disposition", "attachment;filename=" + HttpUtility.UrlEncode(name));
Response.AddHeader("Content-Length", fileInfo.Length.ToString());
Response.AddHeader("Content-Transfer-Encoding", "binary");
Response.ContentType = "application/octet-stream";
Response.ContentEncoding = System.Text.Encoding.GetEncoding("gb2312");
Response.WriteFile(fileInfo.FullName);
Response.Flush();
Response.End();
还有Response.AddHeader("Content-Length", fileInfo.Length.ToString());
长度一定要加上,否则装了低版本的acrobat的用户无法打开pdf文件。