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; }
这个问题测试了好些时间。之前一直用字符串变量是不行的。记得用散列。