在c# webForm中,如何实现文件下载?

酋长 2004-09-02 11:11:50
我将文件以二进制流的格式存入数据库中的image字段,我现在可以取到文件的ID,我如何根据ID将该文件从数据库中读取并下载到本地?(读取我可以做的 就是如何根据webClient实现下载不会,谢谢。)
...全文
441 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
liujing8012150420 2004-09-02
  • 打赏
  • 举报
回复
byte[] zp=(byte[])SR["照片"];
MemoryStream Stream=new MemoryStream(zp);
见这个流创建文件
noahart 2004-09-02
  • 打赏
  • 举报
回复
同意孟子!
你做一个下载页面Download.aspx
在里面拿到从其他页面传过来的参数ID
Request.QueryString["ID"]
根据ID拿到记录,select * from 文件表 where FileID=ID
表里要有这三个字段,取得文件名FileName,文件类型Type,文件流fstream
然后用
Response.Clear();
Response.ContentType =Type;
Response.AddHeader("Content-Disposition", "attachment; filename=" + System.Web.HttpUtility.UrlEncode(Request.ContentEncoding.GetBytes(FileName)));
Response.BinaryWrite(fstream);


酋长 2004-09-02
  • 打赏
  • 举报
回复
:(

还是没有实现
酋长 2004-09-02
  • 打赏
  • 举报
回复
我现在已经将文件存入了数据库(以二进制流)。

现在我要做下载的话,是不是我要先将二进制流读取生成一个文件,然后在执行下载?
tony808 2004-09-02
  • 打赏
  • 举报
回复
先虚成文件,再做链接即可。
酋长 2004-09-02
  • 打赏
  • 举报
回复
谢谢 孟子大哥 这么多 我先看看:)
孟子E章 2004-09-02
  • 打赏
  • 举报
回复
Response.Clear();
Response.ContentType = "application/octet-stream";
Response.AddHeader("Content-Disposition", "attachment; filename=" + System.Web.HttpUtility.UrlEncode(Request.ContentEncoding.GetBytes(filename)));
Response.BinaryWrite((byte[])myDataReader["PersonImage"]);
孟子E章 2004-09-02
  • 打赏
  • 举报
回复
http://dotnet.aspx.cc/ShowDetail.aspx?id=6381BD5F-51F3-4339-4239-1328564A1B2A
孟子E章 2004-09-02
  • 打赏
  • 举报
回复
http://www.cnblogs.com/bestcomy/archive/2004/08/10/31950.aspx
酋长 2004-09-02
  • 打赏
  • 举报
回复
我下午就要拿出演示版本了 急!
酋长 2004-09-02
  • 打赏
  • 举报
回复
以前没有做过 现在突然要急用 感觉时间太紧了 所以请大家帮忙 我也查找了一下 感觉说的都不是太明白
hxhbluestar 2004-09-02
  • 打赏
  • 举报
回复
学习!
酋长 2004-09-02
  • 打赏
  • 举报
回复
try
{
string fileName = string.Empty;
string fileType = string.Empty;
byte[] fileStream = new byte[10240];

fileName = ds.Tables[0].Rows[0]["AttachmentFileName"].ToString();
fileType = ds.Tables[0].Rows[0]["FileType"].ToString().Trim();
fileStream = (byte[])(ds.Tables[0].Rows[0]["AttachmentContent"]);

this.Response.Clear();
this.Response.ContentType = fileType;

Response.AddHeader("Content-Disposition", "attachment; filename=" + System.Web.HttpUtility.UrlEncode(Request.ContentEncoding.GetBytes(fileName)));
Response.BinaryWrite(fileStream);
}
catch(Exception ex)
{
throw new Exception(ex.ToString());
}
酋长 2004-09-02
  • 打赏
  • 举报
回复
我也是这么做的 为什么什么反映也没有呢?

110,536

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧