zoukankan
html css js c++ java
ASP NET页面下载程序
在网站的制作中经常需要开发下载文件的功能,下面三种下载文件的办法:
1、asp实现下载的代码
<%
filename
=
Request.QueryString(
"
FileName
"
)
if
filename
=
""
then
Response.Write
"
请输入filename参数,指定下载的文件名
"
else
Response.ContentType
=
"
application/octet-stream
"
Response.AddHeader
"
content-disposition
"
,
"
attachment; filename =
"
&
filename
Set FileStream
=
Server.CreateObject(
"
Adodb.Stream
"
)
FileStream.Mode
=
3
FileStream.Type
=
1
FileStream.Open
FileStream.LoadFromFile( Server.MapPath(filename))
Response.BinaryWrite( FileStream.Read )
FileStream.Close()
Set FileStream
=
nothing
end
if
%>
把上述代码存成asp类型的文件,使用时类似:download.asp?filename=a.gif。
2、使用WebClient
在下载按钮事件中加入如下代码
System.Net.WebClient wc
=
new
System.Net.WebClient();
wc.DownloadFile(
"
http://localhost/a.gif
"
,
"
c:\a.gif
"
);
上述代码会把服务器端的a.gif文件在没有任何提示的情况下下载的客户端的c盘,没有任何提示还是比较可怕的,不过有的时候确实需要这样做。该代码也可以在桌面程序运行。
3、带有下载提示的ASP NET下载代码
//
打开要下载的文件
System.IO.FileStream r
=
new
System.IO.FileStream(FileName, System.IO.FileMode.Open);
//
设置基本信息
Response.Buffer
=
false
;
Response.AddHeader(
"
Connection
"
,
"
Keep-Alive
"
);
Response.ContentType
=
"
application/octet-stream
"
;
Response.AddHeader(
"
Content-Disposition
"
,
"
attachment;filename=
"
+
System.IO.Path.GetFileName(FileName));
Response.AddHeader(
"
Content-Length
"
, r.Length.ToString());
while
(
true
)
{
//
开辟缓冲区空间
byte
[] buffer
=
new
byte
[
1024
];
//
读取文件的数据
int
leng
=
r.Read(buffer,
0
,
1024
);
if
(leng
==
0
)
//
到文件尾,结束
break
;
if
(leng
==
1024
)
//
读出的文件数据长度等于缓冲区长度,直接将缓冲区数据写入
Response.BinaryWrite(buffer);
else
{
//
读出文件数据比缓冲区小,重新定义缓冲区大小,只用于读取文件的最后一个数据块
byte
[] b
=
new
byte
[leng];
for
(
int
i
=
0
; i
<
leng; i
++
)
b[i]
=
buffer[i];
Response.BinaryWrite(b);
}
}
r.Close();
//
关闭下载文件
Response.End();
//
结束文件下载
该方法有下载提示框,服务器端可以知道何时下载完毕。
查看全文
相关阅读:
html5+css3中的background: -moz-linear-gradient 用法 (转载)
CentOS 安装Apache服务
Linux 笔记
CURL 笔记
Spring Application Context文件没有提示功能解决方法
LeetCode 389. Find the Difference
LeetCode 104. Maximum Depth of Binary Tree
LeetCode 520. Detect Capital
LeetCode 448. Find All Numbers Disappeared in an Array
LeetCode 136. Single Number
原文地址:https://www.cnblogs.com/liughost/p/374085.html
最新文章
SUSE 11.3 linux ISO下载地址
如何才可以干掉Cortana进程,开机不启动
Win10默认浏览器怎么设置
linux命令大全(转载)
exchange 2007迁移到2010
AD-Powershell for Active Directory Administrators
AD账号创建日期、最近一次登录时间、最近一次重置密码时间查询
XenServer设置master,摧毁故障主机
linux配置ssh互信
管理员常用Windows PowerShell命令Top25
热门文章
Windows Server Backup 裸机恢复
如何在微软Hyper-V下发挥SQL Server最大功效
iframe 高度自适应
防止姓名重复解决
Ajax请求用户控件(.ascx)404错误
log4net 快速上手使用
jsonp+handler 的实现
发邮件
js iframe 跳转
兼容
Copyright © 2011-2022 走看看