我已经为此工作了几天,并且尝试了许多不同的方法。我现在拥有的至少开始传输.zip
文件,但是,其中没有任何内容,只有文件名。
我有这个连接到文件所在的服务器(服务器a):
<?php
header('Content-Transfer-Encoding: binary');
header('Content-Length: '.filesize($file));
header('Content-Type: application/zip');
ini_set('display_errors',"1");
require_once('ftp.php');
// set up basic connection
$conn_id = ftp_ssl_connect($ftp_server);//ftp_connect
// login with username and password
$login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);
ftp_pasv($conn_id, true);
// check connection
if ((! $conn_id ) || (! $login_result )) {
echo "FTP connection has failed!" ;
exit;
} else {
echo "Connected for user $ftp_user_name" ;
echo "<br/>";
}
?>
这一切都很好,并回显了用户名。要传输.zip
文件本身,我正在使用:
// using curl to get file
$url = $file;
$fh = fopen(basename($url), "wb");
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_FILE, $fh);
curl_setopt($ch, CURLOPT_URL,$url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_TIMEOUT, 15);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
$data = curl_exec($ch);
curl_close($ch);
这会将文件名放在远程文件夹(服务器 b)中,但其中没有任何内容,大小为 0 字节。如何获取整个文件的传输以便我可以提取它并使用信息?