【发布时间】:2011-11-04 02:51:14
【问题描述】:
我正在尝试编写一个 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 包含超过 500MB 的大数据时,Perl CGI 脚本会等到所有文件都下载完毕后再将其写入文件。似乎 POSTDATA 包含整个文件。这会对系统内存造成压力。有没有其他方法可以读取 httpWebrequest 流数据并将其写入文件?
【问题讨论】: