下面的功能是正确的,但是,我想将文件地址传到一个新的页面,而该页面一打开就开始下载,
可是,我一把下载功能的函数加到page_load中,该页面就自动关闭!但是我如果我在该页面添加一按钮,然后通过该按钮来执行该下载功能就正确了!但是我不想这样,我想该网页一打开就执行下载下载,一下载完成,就自动关闭。
string file = this.Label6.Text;
FileInfo fl = new FileInfo(file);
if (fl.Exists == true)
{
const long ChunkSize = 102400;//100K 每次读取文件,只读取100K,这样可以缓解服务器的压力
byte[] buffer = new byte[ChunkSize];
Response.Clear();
System.IO.FileStream iStream = System.IO.File.OpenRead(file);
long dataLengthToRead = iStream.Length;//获取下载的文件总大小
Response.ContentType = "application/octet-stream";
Response.AddHeader("Content-Disposition", "attachment; filename=" + HttpUtility.UrlEncode(fl.Name.ToString(), System.Text.Encoding.UTF8));
while (dataLengthToRead > 0 && Response.IsClientConnected)
{
int lengthRead = iStream.Read(buffer, 0, Convert.ToInt32(ChunkSize));//读取的大小
Response.OutputStream.Write(buffer, 0, lengthRead);
Response.Flush();
dataLengthToRead = dataLengthToRead - lengthRead;
}
Response.Close();
}
可是,我一把下载功能的函数加到page_load中,该页面就自动关闭!但是我如果我在该页面添加一按钮,然后通过该按钮来执行该下载功能就正确了!但是我不想这样,我想该网页一打开就执行下载下载,一下载完成,就自动关闭。
string file = this.Label6.Text;
FileInfo fl = new FileInfo(file);
if (fl.Exists == true)
{
const long ChunkSize = 102400;//100K 每次读取文件,只读取100K,这样可以缓解服务器的压力
byte[] buffer = new byte[ChunkSize];
Response.Clear();
System.IO.FileStream iStream = System.IO.File.OpenRead(file);
long dataLengthToRead = iStream.Length;//获取下载的文件总大小
Response.ContentType = "application/octet-stream";
Response.AddHeader("Content-Disposition", "attachment; filename=" + HttpUtility.UrlEncode(fl.Name.ToString(), System.Text.Encoding.UTF8));
while (dataLengthToRead > 0 && Response.IsClientConnected)
{
int lengthRead = iStream.Read(buffer, 0, Convert.ToInt32(ChunkSize));//读取的大小
Response.OutputStream.Write(buffer, 0, lengthRead);
Response.Flush();
dataLengthToRead = dataLengthToRead - lengthRead;
}
Response.Close();
}
解决方案 »
- vs2003中的 Ie web control组件怎样安装
- asp.net的上传
- 新人求教,asp.net网站iis发布后链接到某个页面出现编译器错误消息: CS0433
- IIS发布网站后,login控件总是登陆失败,快崩溃了
- 怎样用sql语句删除数据库中两条相同的记录!
- ASP.NET在服务器端要截取别的网站的HTML代码,要怎么做啊?
- 初级问题,页面可以传的查询字符串最多可以有多长?大于255行么?
- 菜鸟问题,关于panel
- 已被闲置了很久的帖子高分待解!! ASP.Net须通过服务器验证发邮件的例子,希望能知道怎么贴附件~~~
- web.config中appsettings配置节,服务器总说无法识别????
- TreeView数据绑定列子
- 【新手疑问】在读取数据库的时候,是用控件自带的读取好,还是自己写个读取好?
怎么实现一进入页面就自动下载啊!