ASP.NET读取数据数据库二进制问题

把文件转换成二进制放到SQL里了。想实现下载文件的功能。stringid=Request.QueryString["FileName"].ToString();using... 把文件转换成二进制放到SQL里了。
想实现下载文件的功能。
string id = Request.QueryString["FileName"].ToString();
using (SqlConnection conn = jx.Class.DBConn.jxConn())
{
string comm = string.Format("select * from Files where FileName ='{0}'", id);
SqlDataAdapter sda = new SqlDataAdapter(comm, conn);
DataTable dt = new DataTable();
sda.Fill(dt);
if (dt.Rows.Count > 0)
{
string FileName = dt.Rows[0]["File_N"].ToString();
Response.Clear();
Response.Buffer = true;
Response.Charset = "utf-8";
Response.AppendHeader("Content-Disposition", "attachment;filename=" + FileName);
Response.ContentEncoding = System.Text.Encoding.GetEncoding("utf-8");
Response.ContentType = "application/ms-excel";
Response.BinaryWrite((byte[])dt.Rows[0]["File_N"]);
}
}
用了这个代码,读取出来了,可以下载了。。。
但是下载下来的东西没有后缀。自己改后缀后可以显示图片了。
希望大大说一下错在哪里?
上面File_N是二进制列。
FileName是文件名。ID是从另外的页面传值过来的。
EXE和图片文件都试过了,都可以下载,但是都是这个名字。。
而且要我自己加后缀。。
希望大家帮下看看是哪里错了
展开
 我来答
百度网友f3e0398
2014-04-23 · 超过16用户采纳过TA的回答
知道答主
回答量:69
采纳率:0%
帮助的人:30.2万
展开全部
Response.AppendHeader("Content-Disposition", "attachment;filename=" + FileName);

改为

Response.AppendHeader("Content-Disposition", "attachment;filename=" + FileName+".jpg");

就是在这句最后加上文件扩展名

追问
但是我不只传JPG文件啊。。我试过EXE。可以下载,下载后加了后缀依旧是可以用。
追答
Response.AppendHeader("Content-Disposition", "attachment;filename=" + FileName+".rar");
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式