asp.net

位置:IT落伍者 >> asp.net >> 浏览文章

asp.net显示下载提示的下载网页程序


发布日期:2021年08月23日
 
asp.net显示下载提示的下载网页程序

网站制作经常要开发下载文件的功能下面三种下载文件的办法
asp实现下载的代码
<%
filename=RequestQueryString("FileName")
iffilename=""then
ResponseWrite"请输入filename参数指定下载的文件名"
else
ResponseContentType="application/octetstream"
ResponseAddHeader"contentdisposition""attachment;filename="&filename
SetFileStream=ServerCreateObject("AdodbStream")
FileStreamMode=
FileStreamType=
FileStreamOpen
FileStreamLoadFromFile(ServerMapPath(filename))

ResponseBinaryWrite(FileStreamRead)

FileStreamClose()
SetFileStream=nothing
endif
%>把上述代码存成asp类型的文件使用时类似downloadasp?filename=agif
使用WebClient
在下载按钮事件中加入如下代码
SystemNetWebClientwc=newSystemNetWebClient();
wcDownloadFile(""c:agif");
上述代码会把服务器端的agif文件在没有任何提示的情况下下载的客户端的c盘没有任何提示还是比较可怕的不过有的时候确实需要这样做该代码也可以在桌面程序运行

aspnet显示下载提示的下载网页程序
//打开要下载的文件
SystemIOFileStreamr=newSystemIOFileStream(FileNameSystemIOFileModeOpen);
//设置基本信息
ResponseBuffer=false;
ResponseAddHeader("Connection""KeepAlive");
ResponseContentType="application/octetstream";
ResponseAddHeader("ContentDisposition""attachment;filename="+SystemIOPathGetFileName(FileName));
ResponseAddHeader("ContentLength"rLengthToString());

while(true)
{
//开辟缓沖区空间
byte[]buffer=newbyte[];
//读取文件的数据
intleng=rRead(buffer);
if(leng==)//到文件尾结束
break;
if(leng==)//读出的文件数据长度等于缓沖区长度直接将缓沖区数据写入
ResponseBinaryWrite(buffer);
else
{
//读出文件数据比缓沖区小重新定义缓沖区大小只用于读取文件的最后一个数据块
byte[]b=newbyte[leng];
for(inti=;i<leng;i++)
b[i]=buffer[i];
ResponseBinaryWrite(b);
}
}
rClose();//关闭下载文件
ResponseEnd();//结束文件下载
该方法有下载提示框服务器端可以知道何时下载完毕

               

上一篇:asp.net缩略图和水印制作:Image Generation

下一篇:asp.net编程程序优化要注意的问题