Los*_*ode 7 c# ftp urlencode url-encoding
我必须通过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
}
Run Code Online (Sandbox Code Playgroud)
此代码失败:(550)文件不可用(例如,找不到文件,没有访问权限)我调试了代码,并target.AbsoluteUri返回ftp://ftp.remoteServer.com/upload而不是ftp://ftp.remoteServer.com /../upload (缺少..)
如果我在浏览器中放入ftp://ftp.remoteServer.com/../upload,我可以登录并验证这是我要放置文件的正确位置.
如何让FTPWebRequest转到正确的位置?
我相信您可以将这些点编码为 %2E 以将这些点保留在您的 URI 中。
所以像这样:
string serverTarget = "ftp://ftp.remoteServer.com/%2E%2E/upload/myfile.txt";
Run Code Online (Sandbox Code Playgroud)