2

所以我试图将一个 1kb 的文本文件上传到我的 ftp 服务器,但是出现了这个错误:

远程服务器返回错误:(553) 文件名不允许。

那么我的代码有什么问题?

WebClient upload = new WebClient();
upload.Credentials = new NetworkCredential("******", "*********");
upload.UploadFile("ftp://xxx.com/public_html", "G:/adress.txt");
4

2 回答 2

3

很难说,因为这是服务器错误而不是代码错误。但是,正如当前所写,您正在尝试上传名为的文件adress.txt以成为名为public_html. 我怀疑已经有一个具有该名称的目录,并且冲突阻止了上传。尝试

upload.UploadFile("ftp://xxx.com/public_html/adress.txt", "G:/adress.txt");

反而。

于 2013-06-12T13:32:27.737 回答
0

这可能不适用于您,但如果它是Linux FTP 服务器

这可能对 Linux FTP 服务器有所帮助。

因此,与 IIS 不同的 Linux FTP 服务器没有通用的 FTP 根目录。相反,当您使用某些用户的凭据登录 FTP 服务器时,会使用该用户的根目录。因此 FTP 目录层次结构从 /root/ 开始,用于 root 用户,从 /home/username 开始用于其他用户。

因此,如果您需要查询的文件不是相对于用户帐户主目录,而是相对于文件系统根目录,请在服务器名称后添加一个额外的 /。生成的 URL 将如下所示:

ftp://servername.net//var/lalala

代替:

ftp://xxx.com/public_html

除了完整的文件名之外,您还需要在服务器名称后添加第二个斜杠:

ftp://xxx.com//public_html/adress.txt

我遇到了同样的问题,它为我解决了这个问题。

来源: 无法连接到 FTP:(553)文件名不允许

于 2015-07-21T18:16:08.790 回答