日期:2014-05-19  浏览次数:20740 次

请教webclient远程上传中文文件名乱码的问题
下面是孟老大的代码,中文文件上传到服务器上后,文件名是乱码,请教怎么解决??


        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);