从realpath PHP引用文件

从realpath PHP引用文件,php,ftp,relative-path,filepath,realpath,Php,Ftp,Relative Path,Filepath,Realpath,我在这里有一个处理FTP内容的类: /var/www/html/crm/rhinos/classes/ftp.php /var/www/html/crm/tmp/cust_lock_1430424215.xlsx 此类包含在生成电子表格的脚本中: /var/www/html/crm/send_cust_lock.php 生成的电子表格位于此处: /var/www/html/crm/rhinos/classes/ftp.php /var/www/html/crm/tmp/cust_lock

我在这里有一个处理FTP内容的类:

/var/www/html/crm/rhinos/classes/ftp.php
/var/www/html/crm/tmp/cust_lock_1430424215.xlsx
此类包含在生成电子表格的脚本中:

/var/www/html/crm/send_cust_lock.php
生成的电子表格位于此处:

/var/www/html/crm/rhinos/classes/ftp.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\u cust\u 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\u put()
会抛出错误呢

我曾尝试使用所选答案中的函数将路径转换为相对路径,但没有成功。如何将文件路径转换为
ftp\u put()
可以识别的内容?

表示值为:

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_文件相同的路径?由于您传递了本地文件名,因此无法在远程FTP上找到它。

表示值为:

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_文件相同的路径?由于您传递了本地文件名,因此无法在远程FTP上找到它。

表示值为:

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_文件相同的路径?由于您传递了本地文件名,因此无法在远程FTP上找到它。

表示值为:

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_文件相同的路径?由于您传递了本地文件名,因此无法在远程FTP上找到它。

您是否尝试将其FTP到与已运行的脚本/文件相同的服务器?@JonathanKuhn,不,我正在尝试通过internet将其从开发机器发送到远程服务器。好的,下一个问题,您的代码是
FTP\u fput()
但是您的描述提到了
ftp\u put()
。你在哪方面需要帮助
Realpath()
将返回文件的完全解析绝对路径(作为字符串),如果找不到该文件,则返回false。只要这不是错误的,您应该能够将它与
ftp\u put
@JonathanKuhn一起使用,我下定决心,问题出在文件路径上,我没有费心重读手册。。事实证明,我甚至不需要文件路径。问题回答正确,谢谢你的帮助!您是否正在尝试通过FTP将脚本/文件发送到已运行的同一服务器?@JonathanKuhn,不,我正在尝试通过internet将其从开发计算机发送到远程服务器。好的,下一个问题,您的代码是
FTP\u fput()
,但您的描述提到
FTP\u put()
。你在哪方面需要帮助
Realpath()
将返回文件的完全解析绝对路径(作为字符串),如果找不到该文件,则返回false。只要这不是错误的,您应该能够将它与
ftp\u put
@JonathanKuhn一起使用,我下定决心,问题出在文件路径上,我没有费心重读手册。。事实证明,我甚至不需要文件路径。问题回答正确,谢谢你的帮助!您是否正在尝试通过FTP将脚本/文件发送到已运行的同一服务器?@JonathanKuhn,不,我正在尝试通过internet将其从开发计算机发送到远程服务器。好的,下一个问题,您的代码是
FTP\u fput()
,但您的描述提到
FTP\u put()
。你在哪方面需要帮助
Realpath()
将返回文件的完全解析绝对路径(作为字符串),如果找不到该文件,则返回false。只要这不是错误的,您应该能够将它与
ftp\u put
@JonathanKuhn一起使用,我下定决心,问题出在文件路径上,我没有费心重读手册。。事实证明,我甚至不需要文件路径。问题回答正确,谢谢你的帮助!您是否正在尝试通过FTP将脚本/文件发送到已运行的同一服务器?@JonathanKuhn,不,我正在尝试通过internet将其从开发计算机发送到远程服务器。好的,下一个问题,您的代码是
FTP\u fput()
,但您的描述提到
FTP\u put()
。你在哪方面需要帮助
Realpath()
将返回文件的完全解析绝对路径(作为字符串),如果找不到该文件,则返回false。只要这不是错误的,您应该能够将它与
ftp\u put
@JonathanKuhn一起使用,我下定决心,问题出在文件路径上,我没有费心重读手册。。事实证明,我甚至不需要文件路径。问题回答正确,谢谢你的帮助!