当前位置:编程学习 > C#/ASP.NET >>

下载功能

下载功能怎样实现,说说思路,求实例或源码。。。 --------------------编程问答-------------------- 你先搜索下网络吧,很多例子了。 --------------------编程问答-------------------- 读文件,把文件流写回Response。设定Header,添加Attachment。


private void Page_Load(object sender, System.EventArgs e)
{
if(!Page.IsPostBack)
{
string filePath = "D:\\test.xls";
// filePath = "D:\\test.xls";
System.IO.FileStream fs = System.IO.File.OpenRead( filePath );
byte[] FileData = new byte[fs.Length];
fs.Read( FileData, 0, (int)(fs.Length) );
fs.Close();

Response.AddHeader( "Content-Type", "application/vnd.ms-excel" );

string saveAsFileName = "YourSaveAsFileName";
saveAsFileName = Encode(saveAsFileName);
        //saveAsFileName = HttpUtility.UrlDecode(saveAsFileName, System.Text.Encoding.GetEncoding("SHIFT-JIS"));
Response.AddHeader("Content-Disposition", "inline;filename=" + saveAsFileName);

Response.AddHeader("Content-Length", FileData.Length.ToString() );
Response.BinaryWrite( FileData );
Response.End();
}
}
--------------------编程问答-------------------- Response.AddHeader("Content-Disposition", "inline;filename=" + saveAsFileName);
inline 改为 attachment 是下载另存。inline 是直接打开。
注意不同类型文件的 "Content-Type" 是不一样的。

还有一种下载方式是,直接把文件的location作为href。点击就会下载。 --------------------编程问答-------------------- 给你说个最简单的方法 
<a href="文件路径"></a>
我测试过   可是实现 --------------------编程问答-------------------- 给你说个最简单的方法  
<a href="文件路径"></a>
直接这样就可以下载了
--------------------编程问答--------------------

  public static void DownLoadFile( string filepath )
        {
            string str = HttpContext.Current.Request.ServerVariables[ "APPL_PHYSICAL_PATH" ];
            string path = str + "所需的文件夹\\" + filepath;
            FileInfo file = new FileInfo( path );
            HttpContext.Current.Response.ContentEncoding = System.Text.Encoding.GetEncoding( "UTF-8" ); //解决中文乱码
            HttpContext.Current.Response.AddHeader( "Content-Disposition", "attachment; filename=" + HttpContext.Current.Server.UrlEncode( file.Name ) ); //解决中文文件名乱码    
            HttpContext.Current.Response.AddHeader( "Content-length", file.Length.ToString() );
            HttpContext.Current.Response.ContentType = "appliction/octet-stream";
            HttpContext.Current.Response.WriteFile( file.FullName );
            HttpContext.Current.Response.End();
        }
--------------------编程问答-------------------- 最简单实现下载就是把别人需要下载的文件放在a标签后面,如下,需要下载一个doc文件的方法
<a href="a.dco">点击下载</a> --------------------编程问答--------------------
引用 7 楼 nlx0201 的回复:
最简单实现下载就是把别人需要下载的文件放在a标签后面,如下,需要下载一个doc文件的方法
<a href="a.dco">点击下载</a>


安全吗? --------------------编程问答--------------------
引用 4 楼 yujiayou 的回复:
给你说个最简单的方法 
<a href="文件路径"></a>
我测试过 可是实现


可行?网址发下我去看看 --------------------编程问答-------------------- --------------------编程问答--------------------
引用 5 楼 ystlovehlf 的回复:
给你说个最简单的方法  
<a href="文件路径"></a>
直接这样就可以下载了

这是把文件上传到服务器的时候
如果保存到数据库,要用流读取的方式、 --------------------编程问答-------------------- 常用功能哦?
--------------------编程问答-------------------- 有实例可供参考没? --------------------编程问答-------------------- <a href="windowFrom.rar">正解</a>

你看腾讯下载频道都是这么写的呢

如果你要权限方面的

就response.redirect('windowFrom.rar') --------------------编程问答-------------------- 网上多的毛啊,资料。
补充:.NET技术 ,  ASP.NET
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,