perl中有种格式叫散列。因为我的文件名和文件路径是动态生成的。所以需要用散列。用字符串变量是不行的。
首先我检测我某个目录下面的所有文件。然后放到散列里面去。
my $dir = "C:/SmartPrinter";
opendir DH, $dir or die "Cannot open $dir: $!";
my $i=0;
my %fruit;#散列
foreach $file (readdir DH) {
$i++;
if($file=~/\.tif$/g){
my $needfile = $dir."/".$file;#组装文件绝对路径
$fruit{"faxfile$i"} = ["$needfile"];
}
}
closedir DH;
然后模拟http post提交。提交的文件内容直接把散列变量放上去就可以了。
print %fruit ;
my $url = "http://localhost:8086/shortWave/telegraph/telegraphFax.htm?do=getFaxTelegraph";
my $ua = LWP::UserAgent->new();
$ua->timeout(30);#超时。单位 秒
my $req = POST $url,Content_Type=>'form-data',
Content => [
submit=>1,
%fruit,#这里就是所有提交的文件。
status=>1
];
my $response = $ua->request($req);
if ($response->is_success()) {
print "success";
exit;
} else {
print "fail";
exit;
}
这个问题测试了好些时间。之前一直用字符串变量是不行的。记得用散列。
本文详细介绍了如何在Perl中利用散列处理动态生成的文件名和文件路径,通过遍历指定目录下所有.TIF格式的文件,并将其组装成绝对路径,然后将这些路径放入散列中进行管理。最后,通过HTTP POST提交操作,将散列变量作为提交文件的内容。文章解决了使用字符串变量无法解决的问题,展示了Perl中散列的强大应用。
1485

被折叠的 条评论
为什么被折叠?



