我需要使用perl cgi上传多个文件。 我使用表单类型
ENCTYPE =“多部分/格式数据 并设定 输入类型文件中的multiple ='multiple'。
只需要知道我们应该在服务器端写什么?
有人可以告诉我如何使用perl上传多个文件吗?
答案 0 :(得分:1)
下面的代码就足够了,并将参数中存在的文件上传到/ storage位置:
sqlite> SELECT time_secs, session, metric_1, metric_1_likelihood, metric_2, metric_2_likelihood FROM full_ts LIMIT 10;
time_secs session metric_1 metric_1_likelihood metric_2 metric_2_likelihood
---------- ---------- ------------------ ------------------- ----------------- -------------------
1572522600 session_0 0.0698785211320749 0.424853512805612 0.494699869796956 0.962915383990865
1572522900 session_0 0.760571893135022 0.294675049990505 0.580396389327591 0.934424555702509
1572523200 session_0 0.629603845787639 0.806491332113479 0.16589472228813 0.963243379341578
1572523500 session_0 0.0571856086488497 0.605895821260498 0.910067195100557 0.480348834963859
1572523800 session_0 0.840306423849594 0.54489589788877 0.352571588765252 0.160847342139792
1572524100 session_0 0.681384243040651 0.528022904478869 0.047929896649995 0.572242594863986
1572524400 session_0 0.349861113535551 0.788712196665348 0.010245146069704 0.548463092362831
1572524700 session_0 0.150289974958309 0.511662214212664 0.60765291353699 0.178207027680503
1572525000 session_0 0.495015984152799 0.0217641427448981 0.564055630347545 0.652345164013304
1572525300 session_0 0.608194881163176 0.065551216982212 0.938749939090523 0.682270932390147
sqlite>
答案 1 :(得分:0)
在服务器端,首先要检索文件文件句柄,如下所示:
use CGI;
my $q = CGI->new();
my $myfh = $q->upload('field_name');
现在您有一个文件句柄到文件上传的临时存储空间。
可以使用param()方法获取上传的文件。
$filename = $q->param('field_name');
可以通过以下方式直接访问临时文件:
$filename = $query->param('uploaded_file');
$tmpfilename = $query->tmpFileName($filename);
我强烈建议您多次给CGI.pm个文档一个很好的读取。虽然不是微不足道的,但这一切都很简单。
答案 2 :(得分:0)
这样的事情应该处理多个文件上传:
my @fhs = $Cgi->upload('files');
foreach my $fh (@fhs) {
if (defined $fh) {
my $type = $Cgi->uploadInfo($fh)->{'Content-Type'};
next unless ($type eq "image/jpeg");
my $io_handle = $fh->handle;
open (OUTFILE,'>>','/var/directory/'.$fh);
while (my $bytesread = $io_handle->read(my $buffer, 1024)) {
print OUTFILE $buffer;
}
close (OUTFILE);
}
}
Ofc'files'是文件上传表单的名称。