C#FTP绕过ROOT连接到特定的PATH
本文关键字:PATH 绕过 ROOT 连接 C#FTP | 更新日期: 2023-09-27 17:59:17
我需要将文件上传到ftp服务器中的特定文件夹。问题是访问ftp的权限仅限于一个特定文件夹,而该文件夹不是根文件夹。
发送此请求会导致错误550
看起来我的ftp请求转到了根目录,然后更改到了目录。我需要将请求发送到特定路径。例如,如果使用mozilla,我可以很好地做到这一点,而不会收到错误。
(如果我仅首先连接到根路径,则我接收550)
有什么想法吗?
Uri target = new Uri("ftp://mtftpserver/folder");
try
{
ftpRequest = (FtpWebRequest)FtpWebRequest.Create(target);
ftpRequest.UseBinary = true;
ftpRequest.UsePassive = true;
ftpRequest.KeepAlive = true;
ftpRequest.Method = WebRequestMethods.Ftp.UploadFile;
ftpStream = ftpRequest.GetRequestStream();
FileStream localFileStream = new FileStream(localFile, FileMode.Create);
byte[] byteBuffer = new byte[bufferSize];
int bytesSent = localFileStream.Read(byteBuffer, 0, bufferSize);
try
{
while (bytesSent != 0)
{
ftpStream.Write(byteBuffer, 0, bytesSent);
bytesSent = localFileStream.Read(byteBuffer, 0, bufferSize);
}
}
catch (Exception ex) { Console.WriteLine(ex.ToString()); }
localFileStream.Close();
ftpStream.Close();
ftpRequest = null;
}
catch (Exception ex) { Console.WriteLine(ex.ToString()); }
return;
FTP错误代码错误550是"由于访问级别,文件不可用"
如果您在没有任何凭据或帐户的情况下连接到FTP服务器,则会自动以匿名用户或访客用户身份登录。
访客用户有一个与登录用户的根文件夹分离的预定义根。通常,访客、匿名用户有一个有限的文件夹可以处理
您正试图移动到默认用户没有访问权限的另一个文件夹,这是引发无效访问错误或错误550的文件夹。