我必须通过FTP上传文件到
ftp://ftp.remoteServer.com
我在remoteServer上的根目录包含一个“上传”和一个“下载”文件夹.我需要将我的文件放在“上传”目录中.但在登录时,服务器会自动将我放入“下载”文件夹中.
我试过这样做:
string serverTarget = "ftp://ftp.remoteServer.com/"; serverTarget += "../upload/myfile.txt"; Uri target = new Uri(serverTarget); FTPWebRequest ftp = (FTPWebRequest)FtpWebRequest.Create(target); using(Stream requestStream = ftp.GetRequestStream()) { // Do upload here }
此代码失败:(550)文件不可用(例如,找不到文件,没有访问权限)
我调试了代码,target.AbsoluteUri返回ftp://ftp.remoteServer.com/upload而不是ftp://ftp.remoteServer.com/../upload(缺少..)
如果我将ftp://ftp.remoteServer.com/../upload放入浏览器,我可以登录并验证这是我想要放置文件的正确位置.
如何让FTPWebRequest转到正确的位置?
解决方法
我相信你可以将点编码为.保留URI中的点.
所以类似于:
string serverTarget = "ftp://ftp.remoteServer.com/%2E%2E/upload/myfile.txt";