【问题标题】:File Upload to AS400 using FtpWebRequest使用 FtpWebRequest 将文件上传到 AS400
【发布时间】:2012-09-01 11:04:26
【问题描述】:

我正在尝试使用 C# 将文件上传到 AS400。结构是:

ftp_server_ip_address/library/table

例如:

10.123.1.23/ABCD/XYZ

文件名: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 Explorer 浏览到 FTP 文件夹。我得到同样的 550 错误。非常感谢任何帮助。

【问题讨论】:

  • 您使用的是哪个 .NET 版本?
  • 它当然使用 VS2010 以 .Net 4.0 客户端配置文件为目标

标签: c# ftp ibm-midrange ftpwebrequest


【解决方案1】:

你构建的网址有点错误,你在文件名前少了一个/,应该是这样的;

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

【讨论】:

  • 我将 URL 修改为 FtpWebRequest ftpRequest = (FtpWebRequest)WebRequest.Create(@"110.123.1.23/ABCD/ABCD" + file.Name); 现在我得到 501 Specified object name too long, limit is 10 characters: ABCD/Sampl。我无法进一步减少长度,因为我在这里称为“ABCD”的库的长度为 9 个字符。可以做什么?
  • @DeepthiRao 检查this page 的“分辨率”部分,因为您似乎被新的 .NET4.0 FTP 行为所困扰。
  • 我试过了。它没有帮助。同样的 501 错误。 :( 我错过了我之前评论中的斜线。修改后的 url 看起来像 FtpWebRequest ftpRequest = (FtpWebRequest)WebRequest.Create(@"110.123.1.23/ABCD/ABCD/" + file.Name);
  • @DeepthiRao 您现在在您的 URL 中缺少 ftp://,除此之外我看不出有什么问题。你是如何设置登录信息的?
  • 这次我胖了。我刚刚意识到我对该文件夹的访问权限已被撤销,并为我提供了一个新文件夹。事情的结合奏效了。 1. 我添加了您为 .net 4.0 错误建议的代码块 2. 从 URL 中删除了 file.Name。现在我的 URL 看起来像 FtpWebRequest ftpRequest = (FtpWebRequest)WebRequest.Create(@"110.123.1.23/ABCD/XYZ"); 非常感谢
猜你喜欢
  • 1970-01-01
  • 2012-11-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多