Загрузка большого файла (~ 500 Мб) в локальное хранилище с FTP, не нарушая работу сервера - PullRequest
0 голосов
/ 03 сентября 2018

Мне необходимо загрузить большой XML-файл с удаленного FTP-сервера в локальное хранилище, чтобы я мог его обработать.

Я определил драйвер FTP, который может получить доступ к файлу. Однако из-за размера файла PHP отказывается от выделения памяти для операции.

Storage::disk('ftp')->get('path/to/file/bigass.xml');

Есть ли способ, который не потребляет память и может загрузить файл без проблем?

1 Ответ

0 голосов
/ 03 сентября 2018

Я предлагаю переключиться на «простое старое» решение для скручивания, используя что-то вроде этого:

$curl = curl_init();
$fh   = fopen("localfilename.xml", 'w');
curl_setopt($curl, CURLOPT_URL, "ftp://{$ftp_username}:{$ftp_password}@{$ftp_server}/path/to/file/bigass.xml");
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
$result = curl_exec($curl);
fwrite($fh, $result);
fclose($fh);
curl_close($curl);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...