Apache2-ASP
view release on metacpan or search on metacpan
lib/Apache2/ASP/MediaManager.pm view on Meta::CPAN
#==============================================================================
sub run
{
my ($s, $context) = @_;
shift(@_);
my $mode = $context->request->Form->{mode};
return unless ( ! $mode ) || ( $mode !~ m/^(create|edit)$/ );
my $filename = $s->compose_download_file_path( $context );
my $file = $s->compose_download_file_name( $context );
# Find its MIME type and set our 'ContentType' value:
my $ext;
unless( $mode )
{
# Find its MIME type and set our 'ContentType' value:
($ext) = $file =~ m/.*?\.([^\.]+)$/;
lib/Apache2/ASP/MediaManager.pm view on Meta::CPAN
# Store some information for later:
$ENV{filename} ||= $target_file;
$ENV{download_file} ||= $filename;
# Depending on the 'mode' parameter, we do different things:
local $_ = $s->_args('mode');
if( /^create$/ )
{
$s->before_create($context, $Upload);
}
elsif( /^edit$/ )
{
$s->before_update($context, $Upload);
}
else
{
die "Unknown mode: '$_'";
}# end if()
}# end upload_start()
lib/Apache2/ASP/MediaManager.pm view on Meta::CPAN
$Upload->{$_} = $info->{$_} foreach keys(%$info);
# Depending on the 'mode' parameter, we do different things:
# local $_ = $context->request->Form->{mode};
my $form = $context->request->Form;
$form = $context->request->Form;
if( $form->{mode} =~ /^create$/ )
{
$s->after_create($context, $Upload);
}
elsif( $form->{mode} =~ /^edit$/ )
{
$s->after_update($context, $Upload);
}
else
{
die "Unknown mode: '$_'";
}# end if()
}# end upload_end()
t/010-coverage/050-mediamanager.t view on Meta::CPAN
my ($file) = 'asp-upload-test.txt';
$res = $api->ua->get("/handlers/upload01?file=$file");
is( length($res->content) => (stat($upload_filename))[7], "Uploaded/Downloaded filesizes match" );
}
# Now update that file:
{
my $uploadID = int(rand() * 1000) . ':' . int(rand() * 1000);
my $res = $api->ua->upload("/handlers/upload01?mode=edit&uploadID=$uploadID", [
uploaded_file => [ $upload_filename ]
]);
}
# Try downloading, but fail:
{
my $res = $api->ua->get('/handlers/upload01?file=sdf.txt&do_fail_before_download=1');
is(
length( $res->content ) => 0,
t/010-coverage/050-mediamanager.t view on Meta::CPAN
# Now update that file with one even larger > 1M:
{
open my $ofh, '>', $upload_filename
or die "Cannot open '$upload_filename' for writing: $!";
for( 1...1025 )
{
print $ofh "."x1024, "\n";
}# end for()
close($ofh);
my $uploadID = int(rand() * 1000) . ':' . int(rand() * 1000);
my $res = $api->ua->upload("/handlers/upload01?mode=edit&uploadID=$uploadID", [
uploaded_file => [ $upload_filename ]
]);
my ($file) = 'asp-upload-test.txt';
$res = $api->ua->get("/handlers/upload01?file=$file");
is( length($res->content) => (stat($upload_filename))[7], "Uploaded/Downloaded filesizes match" );
}
( run in 0.359 second using v1.01-cache-2.11-cpan-de7293f3b23 )