0

我有一个处理位于此处的 FTP 内容的类:

/var/www/html/crm/rhinos/classes/ftp.php

此类包含在此处生成电子表格的脚本中:

/var/www/html/crm/send_cust_lock.php

生成的电子表格位于此处:

/var/www/html/crm/tmp/cust_lock_1430424215.xlsx

我的课程包含以下方法:

public function put($filepath){
    $fp = fopen($filepath, 'r');
    $z = ftp_fput($this->connection, $filepath, $fp, FTP_BINARY);
    fclose($fp);
    return $z;
}

从我的send_cust_lock.php脚本中,当我调用$ftp->put($fn);$fn作为电子表格的上述文件路径)时,我收到以下错误:

Warning: ftp_fput(): Can't open that file: No such file or directory in /var/www/html/crm/rhinos/classes/ftp.php on line 62

fopen()不会抛出错误,那么为什么会ftp_put()抛出一个错误呢?

我尝试使用此处选择的答案中的函数将路径转换为相对路径,但没有运气。如何将文件路径转换为ftp_put()可以识别的东西?

4

1 回答 1

3

手册说这些值是:

ftp_fput ( resource $ftp_stream , string $remote_file , resource $handle , int $mode [, int $startpos = 0 ] )

你正在传递:

$z = ftp_fput($this->connection, $filepath, $fp, FTP_BINARY);

正如预期的那样,您$fp是本地文件的句柄,但是为什么要传递与$remote_file? 它不会在远程 FTP 上找到它,因为您传递了本地文件名。

于 2015-04-30T20:15:56.933 回答