可以使用Filezilla进入FTP,但.NET给出“请求的URI对此FTP命令无效”。

时间:2014-07-29 11:23:56

标签: c# asp.net ftp .net-4.5

我正在尝试将文件上传到外部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设置

enter image description here

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();
            }

1 个答案:

答案 0 :(得分:3)

您是否尝试在创建请求时包含ftp文件名?

 FtpWebRequest ftp = (FtpWebRequest)FtpWebRequest.Create(ftpUrl+ "/" + Path.GetFileName(zipFileName));