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

使用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));
            //    }
            //}
        }
MM们
浏览 969回答 2
2回答

慕哥6287543

SendCommand("STOR " + Path.GetFileName(strFileName)); 应该是这段代码的问题,查一下你的 SendCommand 是以什么编码发送命令的。 服务器和客户端应该保持一致的编码方式。 FTP应该可以通过设置支持中文字符。

智慧大石

我该为utf-8的后为什么传word文档的名称全是中文也同样报550错误,是咋回事呢
打开App,查看更多内容
随时随地看视频慕课网APP