首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

请问webclient远程上传中文文件名乱码的有关问题

2012-02-27 
请教webclient远程上传中文文件名乱码的问题下面是孟老大的代码,中文文件上传到服务器上后,文件名是乱码,

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


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


[解决办法]
try

uriString=HttpUtility.UrlEncoding(uriString);

*****************************************************************************
欢迎使用CSDN论坛专用阅读器 : CSDN Reader(附全部源代码)

http://www.cnblogs.com/feiyun0112/archive/2006/09/20/509783.html
[解决办法]
http://dotnet.aspx.cc/article/yuema9os-w1dn-4kis-8rie-s742llj91l6q/read.aspx

热点排行