文件的下载地址,绑定给一个HyperLink,DownLoad.NavigateUrl = "http://**********(此处为网址)"+ MyGet.GetURL(FileUrl)    //将URL进行编码转换,然后获取URL
    public static string GetURL(string url)
    {
        string URLcode = "";
        URLcode = HttpUtility.UrlEncode(url,Encoding.UTF8);
        URLcode = URLcode.Replace("+", "%20");
        return URLcode;
    }程序中的地址肯定是正确的,因为在使用过程中,大多数文件都可以正常下载。
只是有个别文件不可以正常下载,我怀疑是文件名超长了。链接地址是乱码“http://*********/B411103004_低压一次预系统方案v5-1_技术要求(招标文件)_V1.dwg”
最奇怪的是,我在实验室测试时,可以正常下载,但是放在用户服务器上时,怎么也不能下载,但是两个地方显示的链接地址完全一样,在实验室测试时就可以下,但是放在用户服务器上时就说找不到文件。

解决方案 »

  1.   

    在 response.header中,应该设置正确的 参数/编码/类型
      

  2.   

    FileUrl哪里来的?是不是里面的数据本身就是乱码?
      

  3.   

    Response.AppendHeader("Content-Disposition", "attachment;filename=" + System.Web.HttpUtility.UrlEncode(FileName, System.Text.Encoding.GetEncoding("utf-8")));
      

  4.   

    你的 GetURL 是在干什么呢?
      

  5.   

    GetURL是将地址进行编码,因为原始地址中的文件名有的有中文等,所以对其进行一下编码。