我正在尝试使用基于此 Microsoft 文章的代码将文件上传到 FTP 服务器
出于测试目的,我的代码如下所示:
string ftpUrl = "ftp://" + ftpSite + ftpPath + "test.txt";
//string ftpUrl = ftpSite;
FtpWebRequest request = (FtpWebRequest)WebRequest.Create(ftpUrl);
request.Credentials = new NetworkCredential(ftpUsername, ftpPassword);
request.Method = WebRequestMethods.Ftp.UploadFile;
StreamReader srcStream = new StreamReader(filePath);
byte[] fileContents = Encoding.UTF8.GetBytes(srcStream.ReadToEnd());
request.ContentLength = fileContents.Length;
Stream requestStream = request.GetRequestStream();
requestStream.Write(fileContents, 0, fileContents.Length);
requestStream.Close();
FtpWebResponse response = (FtpWebResponse)request.GetResponse();
每次我尝试上传文件时,都会从 FTP 服务器返回“文件名不允许”错误。如果我使用像 WS_FTP 这样的 FTP 客户端应用程序,我就可以很好地 FTP 相同的文件。
关于如何纠正这个问题的任何想法?我已经尝试过设置主动/被动 FTP 模式、keepalive 和二进制模式,但没有任何运气。
编辑
这是一个 winforms 应用程序 - 文件名来自 OpenFileDialog 提示符,FTP 地址基于 App.Config 中的设置。