下面是孟老大的代码,中文文件上传到服务器上后,文件名是乱码,请教怎么解决??
    private void button1_Click(object sender, System.EventArgs e)
    {
      // 需要注意的是:txtServerPath文件夹有匿名可写的权限。
      // 可以自己定义新文件名字
      if(txtFileName.Text.Trim() == "" || txtServerPath.Text.Trim() == "")
      {
        MessageBox.Show("请输入你要上载的文件名字!","错误:", MessageBoxButtons.OK,
                                                         MessageBoxIcon.Information); 
      }
      else
      {
        /// 得到文件名,文件扩展名字,服务器路径
        string fileNamePath = txtFileName.Text.Trim();
        string uriString = txtServerPath.Text.Trim();
        string fileName = fileNamePath.Substring(fileNamePath.LastIndexOf("\\") + 1); 
        string fileNameExt = fileName.Substring(fileName.LastIndexOf(".") + 1);
        if(uriString.EndsWith("/") == false) uriString = uriString + "/";        uriString = uriString + fileName;
        /// 创建WebClient实例
        WebClient myWebClient = new WebClient();
        myWebClient.Credentials = CredentialCache.DefaultCredentials;        // 要上传的文件
        FileStream fs = new FileStream(fileName, FileMode.Open, FileAccess.Read);
        //FileStream fs = OpenFile();
        BinaryReader r = new BinaryReader(fs);
        try
        {
          //使用UploadFile方法可以用下面的格式
          //myWebClient.UploadFile(uriString,"PUT",fileNamePath);
          byte[] postArray = r.ReadBytes((int)fs.Length);
          Stream postStream = myWebClient.OpenWrite(uriString,"PUT");
          if(postStream.CanWrite)
          {
            postStream.Write(postArray,0,postArray.Length);
            label1.Text = fileName + "上传成功!";
          }
          else
          {
            label1.Text = "文件目前不可写!";
          }
          postStream.Close();
          linkLabel1.Text = "查看上载的文件";
          for(int i = linkLabel1.Links.Count - 1;i>-1;i--)
          linkLabel1.Links.Remove(linkLabel1.Links[i]);
          linkLabel1.Links.Add(0,linkLabel1.Text.Length,uriString);          
        }
        catch(WebException errMsg)
        {
          label1.Text="上传失败:" + errMsg.Message;
        }
      }
    }

解决方案 »

  1.   

    tryuriString=HttpUtility.UrlEncoding(uriString);
      
    *****************************************************************************
    欢迎使用CSDN论坛专用阅读器 : CSDN Reader(附全部源代码) http://www.cnblogs.com/feiyun0112/archive/2006/09/20/509783.html
      

  2.   

    web.config文件里面:
    <globalization 
                requestEncoding="utf-8" 
                responseEncoding="utf-8" 
       />
    字节改成:
    <globalization requestEncoding="gb2312" responseEncoding="gb2312" culture="zh-CN" fileEncoding="gb2312" />
      

  3.   

    3楼的方法我试过没效果楼上的,我是在winform下做的
      

  4.   

    http://dotnet.aspx.cc/article/yuema9os-w1dn-4kis-8rie-s742llj91l6q/read.aspx
      

  5.   

    孟大哥,可以给个FTP上传文件的例子吗,也要支持中文文件名的!谢谢了!