我刚刚编写了一个简单的 FTP 控制台应用程序,用于将本地服务器上的文件上传到远程 FTP 站点。在实际传输文件之前,一切似乎都运行良好。出于某种原因,它没有将文件上传到指定的 FTP 站点,而是将整个文件存储在本地,没有文件类型的 Debug 文件夹中,名称与 FTP 站点的 ip 相同。我认为这与 Visual Studio 的调试有关。有人可以给我一些指导吗?
这是我用来尝试将字符串数组中的每个文件上传到 FTP 站点的代码。
private static void Upload(string ftpServer, string userName, string password, string filename)
{
using (var client = new WebClient())
{
client.Credentials = new NetworkCredential(userName, password);
client.UploadFile(ftpServer, "STOR", filename);
}
}
最佳答案
用这个方法代替那个方法,它对我有用。
//Directory sands for Remote Server Directory ,it must create if dir not exist
FtpWebRequest request = (FtpWebRequest)WebRequest.Create("ftp://serverIP/directory/file");
request.Method = WebRequestMethods.Ftp.UploadFile;
request.Credentials = new NetworkCredential ("username","password");
// Copy the contents of the file to the request stream.
StreamReader sourceStream = new StreamReader("testfile.txt");
byte [] fileContents = Encoding.UTF8.GetBytes(sourceStream.ReadToEnd());
sourceStream.Close();
request.ContentLength = fileContents.Length;
Stream requestStream = request.GetRequestStream();
requestStream.Write(fileContents, 0, fileContents.Length);
requestStream.Close();
FtpWebResponse response = (FtpWebResponse)request.GetResponse();
response.Close();
关于C# FTP 应用程序上传到本地目录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8128141/