PHP вопрос (впервые в PHP после 10 лет Perl, arrggghhh!).
У меня есть файл размером 100 МБ, который я хочу отправить на другой сервер.
Мне удалось прочитать файл и "опубликовать" его без curl (не могу использовать curl для этого приложения). На мелких файлах все работает нормально.
Однако при работе с большими файлами PHP жалуется на невозможность выделить память.
Есть ли способ открыть файл построчно и отправить его как пост ТАКЖЕ построчно?
Таким образом, в оперативной памяти ничего не удерживается, что предотвращает мои ошибки и обходит строгие ограничения.
Chris
Вот мой текущий код ошибки больших файлов:
<?php
ini_set('display_errors',1);
error_reporting(E_ALL|E_STRICT);
$resp = do_post_request("/local/file.txt","http://www.mysite.com/receivedata.php");
exit;
function do_post_request($file,$url){
$fileHandle = fopen($file, "rb");
$fileContents = stream_get_contents($fileHandle);
fclose($fileHandle);
$params = array(
'http' => array
(
'method' => 'POST',
'header'=>"Content-Type: multipart/form-data\r\n",
'content' => $fileContents
)
);
$ctx = stream_context_create($params);
$fp = fopen($url, 'rb', false, $ctx);
$response = stream_get_contents($fp);
return $response;
}
?>