ftp_get () повреждена загрузка большого файла

Я должен загрузить большой файл (около ~ -9 МБ) в формате .gz с сервера, используя FTP. Я написал функцию, которая загружает файл полностью и правильно, но когда я размещаю этот код в Интернете, файл загружается, но файл становится поврежденным.
Вот мой код:

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 для дальнейшей обработки.
Примечание: файл отлично загружается на локальный хост, эта проблема возникает, когда мы помещаем его на работающий сервер.

1

Решение

Файл 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.";
}
0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]