例如:
在image文件夹里有1.jpg,2.txt,3.rar
我是这样写的
.......................<a href=".\image\1.jpg"> xia zai </a>
zhe
这样写一点击,不是下载而是图片显示在浏览器中
href="./image/2.txt"
也是这样,字体显示在浏览器中
当href="./image/3.rar"时,可以下载,
也就是说能在浏览器中显示的,它直接显示了,只有不能显示的在提供下载
怎样让它href="./image/2.txt"时也下载
请高手指点
..............................

解决方案 »

  1.   

    //此处提供下载的方法,你可以通过别的地方来调用,参数为文件名private void DownLoad(string PhysicsFileName)  //PhysicsFileName为文件名
    {   
    string Driver_Path=Server.MapPath("~/upload/picture")+"\\"+PhysicsFileName;
    if (!File.Exists(Driver_Path))
    {
    Response.Write("<script>window.alert('File is not exist !')</script>");
    return;
    }


    try
    {
    FileInfo file = new FileInfo( Driver_Path);
    Response.Clear();
    Response.ClearHeaders();
    Response.ClearContent();
    Response.Buffer = false;
    string strHadFileName = System.Web.HttpUtility.UrlEncode(System.Text.Encoding.UTF8.GetBytes(PhysicsFileName));
    Response.AddHeader("Content-Type","application/octet-stream");
    Response.AddHeader("Content-Disposition", "attachment; filename=" + strHadFileName);  //下载到客户端默认文件名
    // 可以看到下载进程
    Response.AddHeader("Content-Length", file.Length.ToString());
    string strFullName = file.FullName;
    Response.WriteFile(strFullName);
    Response.Flush();
    Response.End();
    }
    catch
    {


    }
    }
      

  2.   

    FileInfo file = new FileInfo( Driver_Path);
    Response.Clear();
    Response.ClearHeaders();
    Response.ClearContent();
    Response.Buffer = false;
    string strHadFileName = System.Web.HttpUtility.UrlEncode(System.Text.Encoding.UTF8.GetBytes(PhysicsFileName));
    Response.AddHeader("Content-Type","application/octet-stream");
    Response.AddHeader("Content-Disposition", "attachment; filename=" + strHadFileName);  //下载到客户端默认文件名
    // 可以看到下载进程
    Response.AddHeader("Content-Length", file.Length.ToString());
    string strFullName = file.FullName;
    Response.WriteFile(strFullName);
    Response.Flush();
    Response.End();