在ASP.NET的WebForm应用程序中,实现从URL链接地址下载文件到本地还是比较方便和简单的,今天就分享一个结合下载实现的实例给大家,其实现的核心代码如下:
//创建Stream
Stream stream = null;
//一次读取并返回到客户端的字节数
var bytesToRead = 10000;
//缓存上面读取到的字节
var buffer = new Byte[bytesToRead];
try
{
var url = "http://dldir1.qq.com/qqfile/qq/QQ6.2/12179/QQ6.2.exe";
//创建WebRequest
var fileReq = (HttpWebRequest)HttpWebRequest.Create(url);
//为请求声明一个response
var fileResp = (HttpWebResponse)fileReq.GetResponse();
if (fileReq.ContentLength > 0)
fileResp.ContentLength = fileReq.ContentLength;
//从请求响应中获取返回的Stream
stream = fileResp.GetResponseStream();
//准备当前客户端的响应
var resp = HttpContext.Current.Response;
//指定响应头的类型
resp.ContentType = "application/octet-stream";
//指定返回文件的名称
resp.AddHeader("Content-Disposition", "attachment; filename="qq.exe"");
//指定返回文件的大小
resp.AddHeader("Content-Length", fileResp.ContentLength.ToString());
int length;
do
{
//检测当前客户端是否仍然和服务器保持连接状态
if (resp.IsClientConnected)
{
//读取数据到缓冲区
length = stream.Read(buffer, 0, bytesToRead);
resp.OutputStream.Write(buffer, 0, length);
resp.Flush();
//清空缓冲区
buffer = new Byte[bytesToRead];
}
else
{
//如果客户端和服务器和连接已丢失,则放弃下载
length = -1;
}
} while (length > 0); //循环,直到stream的结束
}
finally
{
if (stream != null)
{
//关闭stream
stream.Close();
}
}
本例源码:链接: http://pan.baidu.com/s/1qWFKS8W 密码: kie1
下载后解压,打开项目,在浏览器中运行文件—download-file-from-url.aspx 即可
注:本实例的开发环境:VS2013 UPDATE 3,.NET版本:4.5
版权声明:本作品系原创,版权归码友网所有,如未经许可,禁止任何形式转载,违者必究。
发表评论
登录用户才能发表评论, 请 登 录 或者 注册