Advertisement
Guest User

Mojolicious upload

a guest
Nov 20th, 2012
132
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. #!/usr/bin/env perl
  2.  
  3. # try
  4. # MOJO_MAX_MESSAGE_SIZE=100000000 plackup -r upload.pl
  5. # MOJO_MAX_MESSAGE_SIZE=100000000 morbo upload.pl
  6. # and compare debug output
  7.  
  8. use Mojolicious::Lite;
  9.  
  10. hook after_build_tx => sub {
  11.     my $tx = shift;
  12.     $tx->req->on(progress => sub {
  13.         my $msg = shift;
  14.         app->log->debug(
  15.             'total_size($msg->{buffer}) = ' . length($msg->{buffer}) .
  16.             ', $msg->{state} = ' . $msg->{state}
  17.         );
  18.     });
  19. };
  20.  
  21. # Upload form in DATA section
  22. get '/' => 'index';
  23.  
  24. # Streaming multipart upload (invoked twice, due to early "request" event)
  25. post '/upload' => sub {
  26.   my $self = shift;
  27.  
  28.   $self->render(text => 'Upload was successful.');
  29. };
  30.  
  31. app->start;
  32.  
  33. __DATA__
  34.  
  35. @@ index.html.ep
  36. <!DOCTYPE html>
  37. <html>
  38.   <head><title>Streaming multipart upload</title></head>
  39.   <body>
  40.     %= form_for upload => (enctype => 'multipart/form-data') => begin
  41.       %= file_field 'example'
  42.       %= submit_button 'Upload'
  43.     % end
  44.   </body>
  45. </html>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement