为了账号安全,请及时绑定邮箱和手机立即绑定

急求C# Ftp上传类上传中文名文件出现错误,返回响应码550的解决方案!

急求C# Ftp上传类上传中文名文件出现错误,返回响应码550的解决方案!

MM们 2018-12-07 06:53:26
使用C#的FTP上传类,上传英文名称的文件都可以上传,可是上传中文名的文件的时候,就报550错误!急求解决方案! 上传代码如下: /// <summary> /// 上传一个文件 /// </summary> /// <param name="strFileName">本地文件名</param> public void Put(string strFileName) { if (!bConnected) { Connect(); } Socket socketData = CreateDataSocket(); SendCommand("TYPE I"); if (iReplyCode != 200) { throw new IOException(strReply.Substring(4)); } SendCommand("STOR " + Path.GetFileName(strFileName)); if (!(iReplyCode == 125 || iReplyCode == 150)) { throw new IOException(strReply.Substring(4)); } FileStream input = new FileStream(strFileName, FileMode.Open); int iBytes = 102400; while ((iBytes = input.Read(buffer, 0, buffer.Length)) > 0) { socketData.Send(buffer, iBytes, 0); } input.Close(); if (socketData.Connected) { socketData.Close(); } ReadReply(); //if (!(iReplyCode == 226 || iReplyCode == 250)) //{ // ReadReply(); // if (!(iReplyCode == 226 || iReplyCode == 250)) // { // throw new IOException(strReply.Substring(4)); // } //} }
查看完整描述

2 回答

?
慕哥6287543

TA贡献1831条经验 获得超10个赞

SendCommand("STOR " + Path.GetFileName(strFileName));

应该是这段代码的问题,查一下你的 SendCommand 是以什么编码发送命令的。

服务器和客户端应该保持一致的编码方式。

FTP应该可以通过设置支持中文字符。

查看完整回答
反对 回复 2019-01-21
?
智慧大石

TA贡献1946条经验 获得超3个赞

我该为utf-8的后为什么传word文档的名称全是中文也同样报550错误,是咋回事呢

查看完整回答
反对 回复 2019-01-21
  • 2 回答
  • 0 关注
  • 968 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信