我正在尝试将文件上传到外部FTP服务器。我可以使用FileZilla访问服务器,但不能在我的C#程序中访问。
在我的文档中,我检索了一个URL:
ftp.richrelevance.com
我尝试在我的.NET程序中访问该URL,但得到一个:
System.Net.WebException: The requested URI is invalid for this FTP command.
我也试过这条路:
ftp://ftp.richrelevance.com
但是得到同样的错误。
知道程序期望的路径吗?
有效的Filezilla设置:
Ftp代码
using(var fs = File.OpenRead(zipFileName))
{
var ms = new MemoryStream();
ms.SetLength(fs.Length);
fs.Read(ms.GetBuffer(), 0, (int) fs.Length);
FtpWebRequest ftp = (FtpWebRequest)FtpWebRequest.Create(ftpUrl);
ftp.Credentials = new NetworkCredential(ftpUid, ftpPassword);
ftp.KeepAlive = true;
ftp.UseBinary = true;
ftp.Method = WebRequestMethods.Ftp.UploadFile;
byte[] buffer = new byte[ms.Length];
ms.Read(buffer, 0, buffer.Length);
ms.Close();
Stream ftpstream = ftp.GetRequestStream();
ftpstream.Write(buffer, 0, buffer.Length);
ftpstream.Close();
}
答案 0 :(得分:3)
您是否尝试在创建请求时包含ftp文件名?
FtpWebRequest ftp = (FtpWebRequest)FtpWebRequest.Create(ftpUrl+ "/" + Path.GetFileName(zipFileName));