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

hj3793 2007-03-23 07:11:09
下面是孟老大的代码,中文文件上传到服务器上后,文件名是乱码,请教怎么解决??


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;
}
}
}
...全文
447 7 打赏 收藏 举报
写回复
7 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
witer666 2007-03-24
孟大哥,可以给个FTP上传文件的例子吗,也要支持中文文件名的!谢谢了!
  • 打赏
  • 举报
回复
孟子E章 2007-03-24
http://dotnet.aspx.cc/article/yuema9os-w1dn-4kis-8rie-s742llj91l6q/read.aspx
  • 打赏
  • 举报
回复
hj3793 2007-03-24
3楼的方法我试过没效果

楼上的,我是在winform下做的
  • 打赏
  • 举报
回复
wangkun9999 2007-03-23
web.config文件里面:
<globalization
requestEncoding="utf-8"
responseEncoding="utf-8"
/>
字节改成:
<globalization requestEncoding="gb2312" responseEncoding="gb2312" culture="zh-CN" fileEncoding="gb2312" />
  • 打赏
  • 举报
回复
feiyun0112 2007-03-23
try

uriString=HttpUtility.UrlEncoding(uriString);

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

http://www.cnblogs.com/feiyun0112/archive/2006/09/20/509783.html
  • 打赏
  • 举报
回复
hglei 2007-03-23
什么意思
  • 打赏
  • 举报
回复
hj3793 2007-03-23
自己顶
  • 打赏
  • 举报
回复
相关推荐
发帖
C#
加入

10.7w+

社区成员

.NET技术 C#
申请成为版主
帖子事件
创建了帖子
2007-03-23 07:11
社区公告

让您成为最强悍的C#开发者