你好,我的最终目标是编写一个程序通过 sftp 将文件发送到 ax 外部服务器。
为了理解,我之前决定通过 ftp 与 Filezilla 服务器一起工作。 所以我的想法是编写一个客户端,将文件 C: emp\Test\AAA aa.txt ---> 上传到 filezilla 服务器,然后从这里直接上传到另一个位置的文件系统。 这个推理有效还是我需要远程服务器空间?
希望这能起作用,我尝试使用 FileZilla 服务器并编写客户端来实现它。
using (WebClient client = new WebClient())
{
// open connection with connection-strings
client.Credentials = new NetworkCredential("User1", "Password1");
// upload zip-file on server
client.UploadFile("ftp://localhost/C:/Temp/Test/BBB.txt" + "", WebRequestMethods.Ftp.UploadFile, "C:\\temp\\Test\\AAA.txt");
}
问题是,当我运行代码时,我得到
System.Net.WebException:“远程服务器返回错误:(550)文件不可用(例如,找不到文件,无法访问)。”
我知道我很困惑,但我没有在同一台计算机上找到客户端和服务器的任何示例。
谢谢
---添加--- 根据 Chris Berlin 的请求,我注意到 Filezilla 通过显示此内容来响应该请求
所以问题确实与错误的路径有关
实际上我从来没有在本地主机上工作过。
您可以尝试该代码,但我的提示是在远程站点上工作:
string myFile = @"C:\temp\Test\aaa.txt";
string strAddress = "ftp://ipAddress:21/TestRemoteFolder/bbb.txt";
FtpWebRequest request = (FtpWebRequest)WebRequest.Create(strAddress);
request.Credentials = new NetworkCredential("myLogin","mypwd");
request.Method = WebRequestMethods.Ftp.UploadFile;
using (Stream fileStream = System.IO.File.OpenRead(myFile))
using (Stream ftpStream = request.GetRequestStream())
{
fileStream.CopyTo(ftpStream);
}