求助:一个关于asp.net实现文件下载程序的问题
我用C#写了这样一段文件下载的函数:
#region private void FileDownLoad(string filename)
/// <summary>
/// 用户下载文件
/// </summary>
/// <param name="filename">下载文件的路径</param>
private void FileDownLoad(string filename)
{
string destFileName = filename;
destFileName = Server.MapPath("./") + destFileName;
destFileName = Server.UrlDecode(destFileName);
if (File.Exists(destFileName))
{
FileInfo fi = new FileInfo(filename);
Response.Clear();
Response.ClearHeaders();
Response.Buffer = true;
Response.Charset = "GB2312";
//添加头信息,为 "文件下载/另存为 "对话框指定默认文件名
Response.AppendHeader("Content-Disposition", "attachment;filename="
+ HttpUtility.UrlEncode(Path.GetFileName(destFileName),
System.Text.Encoding.UTF8));
Response.AppendHeader("Content-Length", fi.Length.ToString());
Response.ContentType = "text/plain";
Response.Filter.Close();
Response.WriteFile(destFileName);
Response.Flush();
Response.End();
}
else
{
Response.Write("<script language = javascript>alert('下载出错')</script>");
}
}
#endregion
但是在用迅雷测试时发现迅雷的进度条始终显示为0,网际快车也是这样。请问这是怎么回事?哪位高手能否将上面的代码改动一下解决迅雷下载时进度条显示为0的问题。
------解决方案--------------------
用迅雷测试?不明白!
------解决方案--------------------
下载工具的下载好像对ASPX的解析不太专业
因为我们在用ASP.net编写的下载文件一般都是有通过代码转换,文件并没有实际的URI地址
但是常规的下载方式一般是直接访问文件的,或者能够解析类似ASP页面的URI获得文件地址
除非你的ASPX页面返回给迅雷的是一种URI形式或者它能解析的具体文件地址
否则下载工具不会下载你动态生成的文件。
------解决方案--------------------
关注+学习!!
帮你顶!!