【问题标题】:FTP AS400 WRITE IN A FILEFTP AS400 写入文件
【发布时间】:2021-09-06 14:19:35
【问题描述】:

我正在尝试以附加模式写入 as400 ftp 服务器中的现有文件...但它一直给我错误...它返回的错误是它给出“操作完成等...”但是没有向文件写入任何内容...我错了什么?

// set up a connection or die
$conn_id = ftp_connect($ftp_server) or die("Couldn't connect to $ftp_server");

// try to login
if (@ftp_login($conn_id, $ftp_user, $ftp_pass)) {
    echo "Connected as $ftp_user@$ftp_server\n";
} else {
    echo "Couldn't connect as $ftp_user\n";
}

// execute command
if (ftp_raw($conn_id, "cd /QSYS.LIB/DWFOR800.LIB")) {
    debug("cd /QSYS.LIB/DWFOR800.LIB executed successfully");
} else {
    debug("could not execute cd /QSYS.LIB/DWFOR800.LIB");
}

// open file for reading
$file = CODE_PHP_PATH."test.txt";

// execute command
if (ftp_raw($conn_id, "app $file EDI50FTP.FILE")) {
    debug("app $file EDI50FTP.FILE executed successfully");
} else {
    debug("could not execute app $file EDI50FTP.FILE");
}

// close this connection and file handler
ftp_close($conn_id);

【问题讨论】:

  • 不要隐藏错误:@ftp_login,请不要让我们猜测错误信息。
  • 命令也是大写的,我认为它不是app,而是APPEND
  • ftp_raw() 不返回布尔值,而是从服务器返回一个字符串数组。它们可以是正面或负面的消息,您的 if 不是这样工作的。
  • 嗨丹尼尔,它返回的错误是它给出“操作完成等......”但没有向文件写入任何内容
  • 你为什么要用ftp_raw而不是ftp_append来做这个

标签: php ftp ibm-midrange


【解决方案1】:

可能取决于 IBM i 的版本?可能是您使用的是旧版本。您过去必须包括:

quote site namefmt 1

作为第一个命令。这样它就可以识别使用的命名。它默认为库文件系统,但至少在 IBM i V7.2 及更高版本中,如果您的第一个命令是 cd,它将默认为集成文件系统。

这是我的 Windows 控制台 FTP 的 ftp 日志,它适用于我。

230 MMURPHY logged on.
ftp> cd /QSYS.LIB/JMMTEST.LIB
250-NAMEFMT set to 1.
250 "/QSYS.LIB/JMMTEST.LIB" is current library.
ftp> append test.txt TEST.FILE
200 PORT subcommand request successful.
150 Sending file to member TEST in file TEST in library JMMTEST.
226 File transfer completed successfully.
ftp: 934 bytes sent in 0.21Seconds 4.36Kbytes/sec.

因此,如果您使用的是 IBM i v7.2 或更高版本,您的 ftp 命令似乎是正确的。鉴于您使用的是 PHP 5.6。您可能还使用过时的 IBM i 版本。

另一种可能性是您要附加到的文件不是具有单个字符字段的物理文件。 FTP 并不真正传输数据库文件,但它确实传输流文件。可以做一个数据库文件,但我不确定它是否可以附加,通常你必须使用二进制模式来做。

【讨论】:

    猜你喜欢
    • 2014-05-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-12-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-05-26
    相关资源
    最近更新 更多