<html><head><meta name="color-scheme" content="light dark"></head><body><pre style="word-wrap: break-word; white-space: pre-wrap;">package HTML::Form::FileInput;

use strict;
use parent 'HTML::Form::TextInput';

our $VERSION = '6.11';

# ABSTRACT: An HTML form file input element for use with HTML::Form

sub file {
    my $self = shift;
    $self-&gt;value(@_);
}

sub filename {
    my $self = shift;
    my $old  = $self-&gt;{filename};
    $self-&gt;{filename} = shift if @_;
    $old = $self-&gt;file unless defined $old;
    $old;
}

sub content {
    my $self = shift;
    my $old  = $self-&gt;{content};
    $self-&gt;{content} = shift if @_;
    $old;
}

sub headers {
    my $self = shift;
    my $old  = $self-&gt;{headers} || [];
    $self-&gt;{headers} = [@_] if @_;
    @$old;
}

sub form_name_value {
    my ( $self, $form ) = @_;
    return $self-&gt;SUPER::form_name_value($form)
        if $form-&gt;method ne "POST"
        || $form-&gt;enctype ne "multipart/form-data";

    my $name = $self-&gt;name;
    return unless defined $name;
    return if $self-&gt;{disabled};

    my $file     = $self-&gt;file;
    my $filename = $self-&gt;filename;
    my @headers  = $self-&gt;headers;
    my $content  = $self-&gt;content;
    my %headers  = @headers;
    if ( defined $content || grep m/^Content$/i, keys %headers ) {
        $filename = $file unless defined $filename;
        $file     = undef;
        unshift( @headers, "Content" =&gt; $content );
    }
    elsif ( !defined($file) || length($file) == 0 ) {
        return;
    }

    # legacy (this used to be the way to do it)
    if ( ref($file) eq "ARRAY" ) {
        my $f  = shift @$file;
        my $fn = shift @$file;
        push( @headers, @$file );
        $file     = $f;
        $filename = $fn;
    }

    return ( $name =&gt; [ $file, $filename, @headers ] );
}

1;

__END__

=pod

=encoding UTF-8

=head1 NAME

HTML::Form::FileInput - An HTML form file input element for use with HTML::Form

=head1 VERSION

version 6.11

=head1 AUTHOR

Gisle Aas &lt;gisle@activestate.com&gt;

=head1 COPYRIGHT AND LICENSE

This software is copyright (c) 1998 by Gisle Aas.

This is free software; you can redistribute it and/or modify it under
the same terms as the Perl 5 programming language system itself.

=cut
</pre></body></html>