我需要将一个文件通过FTP传输到一个目录。在FTP中,我必须使用目标文件夹中的文件来创建连接,所以我使用.Net手动将Blank.dat放在服务器上。我检查了访问权限(ls -l),结果是-rw-r--r--。但是当我尝试连接到FTP文件夹时,我从服务器得到了:"The remote server returned an error:(553) File name not allowed“。我所做的研究表明,这可能是由于权限问题引起的,但正如我所说的,我有查看文件的权限,并且可以从文件夹运行ls。还有什么其他原因会导致这个问题,有没有一种方法可以连接到文件夹而不必指定文件?
byte[] buffer;
Stream reqStream;
FileStream stream;
FtpWebResponse response;
FtpWebRequest request = (FtpWebRequest)FtpWebRequest.Create(new Uri(string.Format("ftp://{0}/{1}", SRV, DIR)));
request.Method = WebRequestMethods.Ftp.UploadFile;
request.Credentials = new NetworkCredential(UID, PASS);
request.UseBinary = true;
request.Timeout = 60000 * 2;
for (int fl = 0; fl < files.Length; fl++)
{
request.KeepAlive = (files.Length != fl);
stream = File.OpenRead(Path.Combine(dir, files[fl]));
reqStream = request.GetRequestStream();
buffer = new byte[4096 * 2];
int nRead = 0;
while ((nRead = stream.Read(buffer, 0, buffer.Length)) != 0)
{
reqStream.Write(buffer, 0, nRead);
}
stream.Close();
reqStream.Close();
response = (FtpWebResponse)request.GetResponse();
response.Close();
}
发布于 2012-02-24 02:14:14
不久前我看到了类似的情况,结果是我试图连接到内部iis ftp服务器,该服务器使用Active Directory进行安全保护。
在我的网络凭据中,我使用的是新密码(@“domain\NetworkCredential”,"password");,但失败了。切换到新的NetworkCredential("user","password","domain");对我有效。
https://stackoverflow.com/questions/9418404
复制相似问题