0

我在 PHP 中有以下代码:

$connection = @ftp_connect (IP of the server, 21);
ftp_login ($connection, User in FTP, Password in FTP);

ftp_pasv ($connection, true);
ftp_put ($connection, Remote File, Local file, FTP_BINARY);

我创建了到 FTP 的连接并且可以登录,但是ftp_put函数总是上传一个带有警告的空文件:

Warning:  ftp_put(): TYPE is now 8-bit binary

但是,当我将 FTP_BINARY 更改为 FTP_ASCII 时,文件会上传,但由于“特殊字符”(这是一张 jpg 照片),它的内容与“原始文件”不同。问题是:

为什么不使用 FTP_BINARY 并向我显示此警告?

4

1 回答 1

2

这些警告可以在 FTP_BINARY 或 FTP_ASCII 中与 ftp_put() 或 ftp_get() 一起出现:

  • 警告:ftp_get(): TYPE 现在是 8 位二进制
  • 警告:ftp_get(): TYPE 现在是 ASCII
  • 警告:ftp_put(): TYPE 现在是 8 位二进制
  • 警告:ftp_put(): TYPE 现在是 ASCII

您可以使用@ftp_put 或@ftp_get 将它们静音,但在“get”的情况下,目标文件会被系统地删除而不被替换。

当放置在 ftp_put() 或 ftp_get() 之前,被动模式必须更正它们:

 ftp_pasv($connection, true); 
于 2017-04-04T12:28:26.513 回答