Я пытаюсь написать сценарий Perl CGI, который сохранит файл, загруженный клиентским компьютером, в файл на сервере. На стороне клиента код C # использует httpWebRequest и отправляет данные через поток.
Похоже, что у загружаемых данных нет никакого параметра, связанного с этим, поэтому мне было трудно их читать (я не знаю C #). После поиска здесь в Stackoverflow мне удалось захватить данные, используя
$query = CGI->new();
$data = $query->param('POSTDATA');
Теперь я могу напрямую записать эти данные в файл,
open ( FH, ">$filename" ) or die ("error opening file $filename: $!");
print FH $data;
close FH;
Это прекрасно работает для небольших файлов. Но когда POSTDATA содержит большие данные размером более 500 МБ, сценарий Perl CGI ожидает загрузки всего файла и затем записывает его в файл. Кажется, POSTDATA содержит весь файл. Это вызывает нагрузку на системную память. Есть ли другой способ прочитать данные потока httpWebrequest и записать их в файл?