[待解决问题] 关于Asp.Net中的下载文件的问题????
提问时间: 2008-04-24 16:58
悬赏分:5 该问题已到期 浏览:172 次

我会上传了。但如何把服务器上的的文件(本地项目中的文件吧!)下载到本地(桌面,或E,D盘中)?

能给个简单的例子,就太谢谢了!


提问者:HamunNet - 初学一级
所有回答(4)
直接使用超链接就可以了。
超链接指向相关资源。下载的时候浏览器会给你一个选择框的。
3周前   回答者:暗香浮动 - 菜鸟二级
使用WebClient的ownloadFile()是一种方法
System.Net.WebClient wc = new System.Net.WebClient();
        try
        {
            if (!File.Exists(picName))
                wc.DownloadFile(filename, strSavePath);

        }
        catch (System.Exception ex)
        {
            Response.Write("error:" + ex.Message.ToString());
        }
        finally
        {
            wc.Dispose();
        }
3周前   回答者:生鱼片 - 小虾三级
去 参考Discuz.NT 的 Discuz.Common.Utils这个类
/// <summary>
/// 以指定的ContentType输出指定文件文件
/// </summary>
/// <param name="filepath">文件路径</param>
/// <param name="filename">输出的文件名</param>
/// <param name="filetype">将文件输出时设置的ContentType</param>
public static void ResponseFile(string filepath, string  filename, string filetype)
{
Stream iStream = null;

// 缓冲区为10k
byte[] buffer = new Byte[10000];

// 文件长度
int length;

// 需要读的数据长度
long dataToRead;

try
{
// 打开文件
iStream = new FileStream(filepath, FileMode.Open, FileAccess.Read, FileShare.ReadWrite);


// 需要读的数据长度
dataToRead = iStream.Length;

HttpContext.Current.Response.ContentType = filetype;
HttpContext.Current.Response.AddHeader("Content-Disposition", "attachment;filename=" + Utils.UrlEncode(filename.Trim()).Replace("+", " "));

while (dataToRead > 0)
{
// 检查客户端是否还处于连接状态
if (HttpContext.Current.Response.IsClientConnected)
{
length = iStream.Read(buffer, 0, 10000);
HttpContext.Current.Response.OutputStream.Write(buffer, 0, length);
HttpContext.Current.Response.Flush();
buffer = new Byte[10000];
dataToRead = dataToRead - length;
}
else
{
// 如果不再连接则跳出死循环
dataToRead = -1;
}
}
}
catch (Exception ex)
{
HttpContext.Current.Response.Write("Error : " + ex.Message);
}
finally
{
if (iStream != null)
{
// 关闭文件
iStream.Close();
}
}
HttpContext.Current.Response.End();
}
3周前   回答者:Hunts.C - 初学一级
try wget
3周前   回答者:wingoo - 小虾三级
3周前   HamunNet :
以上都说的没错,我先试~
3周前   HamunNet :
请问一下if (!File.Exists(picName)) 
                wc.DownloadFile(filename, strSavePath); 
中picName,filename,strSavePath个指什么?

   您需要登录以后才能回答!
我的问题    我要提问


快到期问题

> 问题排行榜

有不合适内容,建议去除