从真实路径引用文件 PHP
Referencing file from realpath PHP
我有一个 class 可以处理 FTP 位于此处的东西:
/var/www/html/crm/rhinos/classes/ftp.php
此 class 包含在此处生成电子表格的脚本中:
/var/www/html/crm/send_cust_lock.php
生成的电子表格位于此处:
/var/www/html/crm/tmp/cust_lock_1430424215.xlsx
我的 class 包含以下方法:
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()
会抛出错误?
我尝试使用所选答案 here 中的函数将路径转换为相对路径,但没有成功。如何将文件路径转换为 ftp_put()
可以识别的内容?
manual 表示值是:
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 上找到它,因为您传递了本地文件名。
我有一个 class 可以处理 FTP 位于此处的东西:
/var/www/html/crm/rhinos/classes/ftp.php
此 class 包含在此处生成电子表格的脚本中:
/var/www/html/crm/send_cust_lock.php
生成的电子表格位于此处:
/var/www/html/crm/tmp/cust_lock_1430424215.xlsx
我的 class 包含以下方法:
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()
会抛出错误?
我尝试使用所选答案 here 中的函数将路径转换为相对路径,但没有成功。如何将文件路径转换为 ftp_put()
可以识别的内容?
manual 表示值是:
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 上找到它,因为您传递了本地文件名。