The London Perl and Raku Workshop takes place on 26th Oct 2024. If your company depends on Perl, please consider sponsoring and/or attending.

NAME

Data::MuForm::Field::Upload - file upload field

VERSION

version 0.05

DESCRIPTION

This field is designed to be used with a blessed object with a 'size' method, such as Catalyst::Request::Upload, or a filehandle. Validates that the file is not empty and is within the 'min_size' and 'max_size' limits (limits are in bytes). A form containing this field must have the enctype set.

    package My::Form::Upload;
    use Moo;
    use Data::MuForm::Meta;
    extends 'Data::MuForm';

    has '+enctype' => ( default => 'multipart/form-data');

    has_field 'file' => ( type => 'Upload', max_size => '2000000' );
    has_field 'submit' => ( type => 'Submit', value => 'Upload' );

In your controller:

    my $form = My::Form::Upload->new;
    my $params = $c->req->body_parameters;
    $params->{file} = $c->req->upload('file') if $c->req->method eq 'POST';
    $form->process( params => $params );
    return unless ( $form->validated );

You can set the min_size and max_size limits to undef if you don't want them to be validated.

DEPENDENCIES

layout_type

Layout type is 'upload'

AUTHOR

Gerda Shank

COPYRIGHT AND LICENSE

This software is copyright (c) 2018 by Gerda Shank.

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