|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
可怜的程序员,还是逃不出移植的命运!asp.net|程序|下载|页面在网站的制造中常常必要开辟下载文件的功效,上面三种下载文件的举措:
1、asp完成下载的代码
<%
filename=Request.QueryString("FileName")
iffilename=""then
Response.Write"请输出filename参数,指定下载的文件名"
else
Response.ContentType="application/octet-stream"
Response.AddHeader"content-disposition","attachment;filename="&filename
SetFileStream=Server.CreateObject("Adodb.Stream")
FileStream.Mode=3
FileStream.Type=1
FileStream.Open
FileStream.LoadFromFile(Server.MapPath(filename))
Response.BinaryWrite(FileStream.Read)
FileStream.Close()
SetFileStream=nothing
endif
%>把上述代码存成asp范例的文件,利用时相似:download.asp?filename=a.gif。
2、利用WebClient
鄙人载按钮事务中到场以下代码
System.Net.WebClientwc=newSystem.Net.WebClient();
wc.DownloadFile("http://localhost/a.gif","c:a.gif");
上述代码会把服务器真个a.gif文件在没有任何提醒的情形下下载的客户真个c盘,没有任何提醒仍是对照可骇的,不外有的时分的确必要如许做。该代码也能够在桌面程序运转。
3、带有下载提醒的ASPNET下载代码
//翻开要下载的文件
System.IO.FileStreamr=newSystem.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=newbyte[1024];
//读取文件的数据
intleng=r.Read(buffer,0,1024);
if(leng==0)//到文件尾,停止
break;
if(leng==1024)//读出的文件数据长度即是缓冲区长度,间接将缓冲区数据写进
Response.BinaryWrite(buffer);
else
{
//读出文件数据比缓冲区小,从头界说缓冲区巨细,只用于读取文件的最初一个数据块
byte[]b=newbyte[leng];
for(inti=0;i<leng;i++)
b=buffer;
Response.BinaryWrite(b);
}
}
r.Close();//封闭下载文件
Response.End();//停止文件下载
该办法有下载提醒框,服务器端能够晓得什么时候下载终了。
完全不一样的。.net其实我也说不太清,.net可以把他理解为跟J2EE相对的工具。c++主要做系统相关的开发你要学.net的话就应该学C#。(其实微软在.NET平台上也考虑了给C++留一个地位。 |
|