Apache-ParseFormData
view release on metacpan or search on metacpan
ParseFormData.pm view on Meta::CPAN
return($name ? @{$self->pnotes('upload')->{$name}} : keys(%{$self->pnotes('upload')}));
}
sub parse_content {
my $r = shift;
my $args = shift;
my $buf = "";
$r->setup_client_block;
$r->should_client_block or return '';
my $ct = $r->headers_in->get('content-type');
if($args->{'disable_uploads'} && index($ct, "multipart/form-data") > -1) {
my $error_str = "[Apache::ParseFormData] file upload forbidden";
$r->notes->set("error-notes" => $error_str);
$r->log_error($error_str);
return(Apache::FORBIDDEN);
}
my $rm = $r->remaining;
if($args->{'post_max'} && ($rm > $args->{'post_max'})) {
my $pm = $args->{'post_max'};
ParseFormData.pm view on Meta::CPAN
if(shift(@a) eq "form-data") {
if(scalar(@a) == 1) {
my ($key) = ($a[0] =~ /name=\"([^\"]+)\"/);
$r->param($key => $_->{'values'} || "");
} else {
(ref($_->{'values'}) eq "ARRAY") or next;
my ($fh, $path) = @{$_->{'values'}};
seek($fh, 0, 0);
my %hash = (
filename => "",
type => exists($_->{'headers'}->{'content-type'}) ? $_->{'headers'}->{'content-type'} : "",
size => ($fh->stat())[7],
);
my $param = "";
for(@a) {
my ($name, $value) = (/([^=]+)=\"([^\"]+)\"/);
if($name eq "name") {
$uploads{$value} = [$fh, $path];
$param = $value;
} else {
$hash{$name} = $value;
ParseFormData.pm view on Meta::CPAN
sub extract_headers {
my $raw = shift;
my %hash = ();
for(split(/\r?\n/, $raw)) {
s/[\r\n]+$//;
$_ or next;
my ($h, $v) = split(/ *: */, $_, 2);
$hash{lc($h)} = $v;
}
$_[0] = \%hash;
return(exists($hash{'content-type'}));
}
sub output_data {
my $dest = shift;
my $data = shift;
if(ref($dest->{values}) eq "ARRAY") {
my $fh = $dest->{values}->[0];
print $fh $data;
} else { $dest->{values} .= $data; }
( run in 2.628 seconds using v1.01-cache-2.11-cpan-524268b4103 )