Skip to content

Instantly share code, notes, and snippets.

@ology
Last active January 18, 2025 18:02
Show Gist options
  • Save ology/0229010782ff337d091e3ab097b67f8b to your computer and use it in GitHub Desktop.
Save ology/0229010782ff337d091e3ab097b67f8b to your computer and use it in GitHub Desktop.
Mojo upload is undef??
Use of uninitialized value $file in concatenation (.) or string at .../upload.pl line 96.
Mojo::Server::Sandbox::d51d682e78b961e143b7ed5b80fccaf5 L96
[2025-01-18 09:45:41.85818] [31751] [error] [TA0Dg0GidrV3] Can't call method "size" on an undefined value at .../upload.pl line 102.
#!/usr/bin/env perl
use Mojolicious::Lite -signatures;
# ...
post '/files' => sub ($c) {
my $location = $c->param('location') || '';
my $file = $c->req->upload('file');
warn __PACKAGE__,' L',__LINE__,' ',,"$file\n";
# ...
@@ files.html.ep
% layout 'default';
% title 'Backup';
<form method="post">
<input type="hidden" name="location" value="<%= $location %>">
<label for="file"><b>Upload file</b>:</label>
<input type="file" id="file" name="file" class="form-control" enctype="multipart/form-data">
<button type="submit" class="btn btn-sm btn-primary">Submit</button>
</form>
...
Mojo::Server::Sandbox::d51d682e78b961e143b7ed5b80fccaf5 L101 bless( {
body_params =>
bless( { charset => 'UTF-8', string => 'location=JunkDrawer%2Fgene&file=anderssen_kieseritzky_1851.pgn' }, "Mojo::Parameters" ),
content => bless( {
asset => bless( {
auto_upgrade => 1,
content => 'location=JunkDrawer%2Fgene&file=anderssen_kieseritzky_1851.pgn',
max_memory_size => 262144,
}, "Mojo::Asset::Memory" ),
auto_upgrade => 1,
body => 2,
buffer => '',
events => { read => [ $VAR1 ] },
header_size => 2037,
headers => bless( {
cache => [],
headers => {
accept => [ 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8' ],
'accept-encoding' => [ 'gzip, deflate, br, zstd' ],
'accept-language' => [ 'en-US,en;q=0.5' ],
connection => [ 'keep-alive' ],
'content-length' => [ 62 ],
'content-type' => [ 'application/x-www-form-urlencoded' ],
cookie =>
[ 'mojolicious=eyJhdXRoIjoxLCJleHBpcmVzIjoxNzM3MjI2ODA2LCJ1c2VyIjoiZ2VuZSIsInVzZXJfaWQiOjF9WlpaWlpaWlpaWlpaWlpaWlpaW'
.'lpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWl'
.'paWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlp'
.'aWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpa'
.'WlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaW'
.'lpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWl'
.'paWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlp'
.'aWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpa'
.'WlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaW'
.'lpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWl'
.'paWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlp'
.'aWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpa'
.'WlpaWlpaWlpaWlpaWlpaWlo---c5d87bc23f6c4b15889dfa25e15036f9051f7a9e89a9818c386f567fcee97a7f'
],
host => [ '127.0.0.1:3000' ],
origin => [ 'http://127.0.0.1:3000' ],
priority => [ 'u=0, i' ],
referer => [ 'http://127.0.0.1:3000/files' ],
'sec-fetch-dest' => [ 'document' ],
'sec-fetch-mode' => [ 'navigate' ],
'sec-fetch-site' => [ 'same-origin' ],
'sec-fetch-user' => [ '?1' ],
'upgrade-insecure-requests' => [ 1 ],
'user-agent' => [ 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:134.0) Gecko/20100101 Firefox/134.0' ],
},
max_line_size => 8192,
max_lines => 100,
names => {
priority => 'Priority',
referer => 'Referer',
'sec-fetch-dest' => 'Sec-Fetch-Dest',
'sec-fetch-mode' => 'Sec-Fetch-Mode',
'sec-fetch-site' => 'Sec-Fetch-Site',
'sec-fetch-user' => 'Sec-Fetch-User',
'upgrade-insecure-requests' => 'Upgrade-Insecure-Requests',
},
state => 'finished',
}, "Mojo::Headers" ),
pre_buffer => '',
raw_size => 2099,
read => $_->{content}{events}{read}[0],
real_size => 62,
size => 62,
state => 'finished',
}, "Mojo::Content::Single" ),
cookies => { mojolicious => [ bless( {
name => 'mojolicious',
value =>
'eyJhdXRoIjoxLCJleHBpcmVzIjoxNzM3MjI2ODA2LCJ1c2VyIjoiZ2VuZSIsInVzZXJfaWQiOjF9WlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlp'
.'aWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWl'
.'paWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaW'
.'lpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpa'
.'WlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlp'
.'aWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWl'
.'paWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaW'
.'lpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpa'
.'WlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlp'
.'aWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWl'
.'paWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaW'
.'lpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlo---c5d87bc23f'
.'6c4b15889dfa25e15036f9051f7a9e89a9818c386f567fcee97a7f',
}, "Mojo::Cookie::Request" ) ] },
default_charset => 'UTF-8',
events => {},
finished => 1,
max_line_size => 8192,
max_message_size => 16777216,
method => 'POST',
params => $_->{body_params},
raw_size => 2121,
request_id => 'fWsYIMcgq9WC',
state => 'finished',
trusted_proxies => [],
uploads => {},
url => bless( {
base => bless( {
host => '127.0.0.1',
path => bless( { charset => 'UTF-8', leading_slash => !!0, parts => [], trailing_slash => !!0 }, "Mojo::Path" ),
port => 3000,
query => $_->{url}{base}{path},
scheme => 'http',
}, "Mojo::URL" ),
path => $_->{url},
query => $_->{url}{base}{path},
}, "Mojo::URL" ),
version => '1.1',
}, "Mojo::Message::Request" )
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment