我尝试了以下所有可以想到的变化。
client.Credentials = new NetworkCredential(ftpInfo.ftpUserName, ftpInfo.ftpPassWord);
client.BaseAddress = "ftp://99.999.9.99";
var response = client.UploadFile("testFile.txt", "C:\\ftproot\\testfile\\012\\Drop\\testFile.txt");
我知道用户名和密码正确。 如果我从同一框中使用filezilla连接到服务器,则它可以正常工作。
我尝试不使用ftp:// -我必须缺少一些非常简单的内容。
这是错误: {“无法连接到远程服务器”}
更新: 我不知道这个问题出了什么问题。我已经提供了尽可能多的信息。
这是当前使用注释中一些建议的测试。
using (WebClient client = new WebClient())
{
client.Credentials = new NetworkCredential("password", "loginname");
client.UploadFile("ftp://99.999.6.130/testFile.txt", "STOR", "c:\\testfile.txt");
}
那只是说我还没有登录。
以下内容正在运行。...当我允许时,我将结束该问题。
最终更新-工作解决方案:
public static bool UploadFile(string url, string userName, string password, string file,
out string statusDescription)
{
try
{
var request = (FtpWebRequest)WebRequest.Create(url);
request.Method = WebRequestMethods.Ftp.UploadFile;
request.Credentials = new NetworkCredential(userName, password);
// Copy the entire contents of the file to the request stream.
var sourceStream = new StreamReader(file);
var fileContents = Encoding.UTF8.GetBytes(sourceStream.ReadToEnd());
sourceStream.Close();
request.ContentLength = fileContents.Length;
var getResponse = request.GetResponse();
Console.WriteLine($"{fileContents.Length} {getResponse} ");
答案 0 :(得分:0)
以下是可行的解决方案。
公共静态布尔UploadFile(字符串url,字符串userName,字符串密码,字符串文件, 输出字符串状态说明) { 尝试 { var request =(FtpWebRequest)WebRequest.Create(url); request.Method = WebRequestMethods.Ftp.UploadFile;
request.Credentials = new NetworkCredential(userName, password);
// Copy the entire contents of the file to the request stream.
var sourceStream = new StreamReader(file);
var fileContents = Encoding.UTF8.GetBytes(sourceStream.ReadToEnd());
sourceStream.Close();
request.ContentLength = fileContents.Length;
var getResponse = request.GetResponse();
Console.WriteLine($"{fileContents.Length} {getResponse} ");