ftp_get() 损坏的大文件下载
ftp_get() corrupt large file download
我必须使用 ftp 从服务器下载一个 .gz 格式的大文件(大约~-9mb)。我已经编写了一个可以完整且正确地下载文件的函数,但是当我将此代码放到网上时,文件已下载但文件已损坏。
这是我的代码:
function downloadFile($ftp_server, $username, $password, $server_file, $local_file)
{
// download server file
$ftp_conn = ftp_connect($ftp_server) or die("Could not connect to $ftp_server");
$login = ftp_login($ftp_conn, $username, $password);
ftp_pasv($ftp_conn, true);
if (ftp_get($ftp_conn, $local_file, $server_file, FTP_ASCII)) {
echo "Successfully written to $local_file.";
// exit;
} else {
echo "Error downloading $server_file.";
}
}
我是这样称呼它的
ini_set('max_execution_time', 0);
$username = "username";
$password = "password";
$xmlFile = __DIR__ . "/monster.xml.gz";
$local_file = __DIR__ . "/monster.xml";
$ftp_server = "ftp.monster.com";
$server_file = "/US~Partner~Sample Feed.xml.gz";
downloadFile($ftp_server,$username,$password,$server_file,$xmlFile);
必须下载该文件,然后我会将其转换为 XML 以供进一步处理。
注意:该文件在本地主机上下载完美,当我们将它放在实时服务器上时会出现此问题。
GZ 文件中可能不仅有文本。所以你必须用二进制模式下载它,这样它包含的任何东西都可以成功下载
if (ftp_get($ftp_conn, $local_file, $server_file, FTP_ASCII)) {
echo "Successfully written to $local_file.";
// exit;
} else {
echo "Error downloading $server_file.";
}
我必须使用 ftp 从服务器下载一个 .gz 格式的大文件(大约~-9mb)。我已经编写了一个可以完整且正确地下载文件的函数,但是当我将此代码放到网上时,文件已下载但文件已损坏。 这是我的代码:
function downloadFile($ftp_server, $username, $password, $server_file, $local_file)
{
// download server file
$ftp_conn = ftp_connect($ftp_server) or die("Could not connect to $ftp_server");
$login = ftp_login($ftp_conn, $username, $password);
ftp_pasv($ftp_conn, true);
if (ftp_get($ftp_conn, $local_file, $server_file, FTP_ASCII)) {
echo "Successfully written to $local_file.";
// exit;
} else {
echo "Error downloading $server_file.";
}
}
我是这样称呼它的
ini_set('max_execution_time', 0);
$username = "username";
$password = "password";
$xmlFile = __DIR__ . "/monster.xml.gz";
$local_file = __DIR__ . "/monster.xml";
$ftp_server = "ftp.monster.com";
$server_file = "/US~Partner~Sample Feed.xml.gz";
downloadFile($ftp_server,$username,$password,$server_file,$xmlFile);
必须下载该文件,然后我会将其转换为 XML 以供进一步处理。 注意:该文件在本地主机上下载完美,当我们将它放在实时服务器上时会出现此问题。
GZ 文件中可能不仅有文本。所以你必须用二进制模式下载它,这样它包含的任何东西都可以成功下载
if (ftp_get($ftp_conn, $local_file, $server_file, FTP_ASCII)) {
echo "Successfully written to $local_file.";
// exit;
} else {
echo "Error downloading $server_file.";
}