我正在尝试使用C#将文件上传到AS400。结构是:
ftp_server_ip_address/library/table
E.g:
10.123.1.23/ABCD/XYZ
FileName:sample.txt
AS400表与我的文件布局具有相同的字段。我可以使用PUT命令使用FTP命令成功上传文件,如下所示。
ftp> open 10.123.1.23
ftp> username
ftp> password
ftp> cd ABCD
ftp> put c:/sample.txt ABCD/XYZ
我收到了成功的消息。
但是当我尝试使用FtpWebRequest
时,我收到一条550 :” File unavailable or no access”
错误消息。
我不确定如何构造URI。 目前,我的代码看起来像
FtpWebRequest ftpRequest = (FtpWebRequest)WebRequest.Create(@"ftp://110.123.1.23/ABCD” + file.Name);
此外,我无法使用Internet Explorer或Windows资源管理器浏览到FTP文件夹。我得到了相同的550错误。非常感谢任何帮助。
答案 0 :(得分:1)
你构建的URL有点不对,你在文件名之前错过了/
,应该是这样的;
FtpWebRequest ftpRequest =
(FtpWebRequest)WebRequest.Create(@"ftp://110.123.1.23/ABCD/” + file.Name);
您也没有与交互式示例存储在同一目录中;
ftp> cd ABCD
ftp> put c:/sample.txt ABCD/XYZ
将文件XYZ存储在ABCD / ABCD目录中,而不仅仅是URL示例中的ABCD。
第三,如果您使用的是.NET 4.0或更高版本,则可以be bitten by this changed behavior in how directories are sent to the server。