所以我试图将一个1kb的文本文件上传到我的ftp服务器,但出现了这个错误:
远程服务器返回错误:(553)不允许文件名。
所以我的代码出了什么问题?
WebClient upload = new WebClient();
upload.Credentials = new NetworkCredential("******", "*********");
upload.UploadFile("ftp://xxx.com/public_html", "G:/adress.txt");
答案 0 :(得分:3)
很难说,因为它是服务器错误而不是代码错误。但是,正如当前所写,您尝试上传名为adress.txt
的文件,以成为名为public_html
的文件。我怀疑已经有一个具有该名称的目录,并且冲突阻止了上传。试试
upload.UploadFile("ftp://xxx.com/public_html/adress.txt", "G:/adress.txt");
代替。
答案 1 :(得分:0)
这可能不适用于您,但如果它是 Linux FTP服务器:
这可能有助于Linux FTP服务器。
因此,与IIS不同的Linux FTP服务器没有通用的FTP根目录。 相反,当您使用某些用户的凭据登录到FTP服务器时, 使用此用户的根目录。所以FTP目录层次结构启动 来自/ root /用户和/ home /用户名。
因此,如果您需要查询与用户帐户主页无关的文件 目录,但相对于文件系统root,添加额外/后 服务器名称。生成的URL将如下所示:
ftp://servername.net//var/lalala
而不是:
ftp://xxx.com/public_html
除了完整的文件名之外,您还需要在服务器名称后面加第二个斜杠:
ftp://xxx.com//public_html/adress.txt
我遇到了同样的问题,并为我解决了这个问题。