[Dancer-users] Handling file uploads

Stefan Oberwahrenbrock oberwahrenbrock at gmx.de
Fri Mar 25 20:31:11 CET 2011


Hi Sunnavy,

just to give you a short feedback (better late than never ;-) ): You are 
right, using "request->body()" worked for me.  I simply misinterpreted 
the documentation thinking  that "upload" would provide access to any 
uploads. But - as the documentation says - it provides access to 
POST-Uploads. PUT-Uploads obviously are something different.

Thanks,
Stefan


Am 26.11.2010 13:17, schrieb sunnavy:
> Hi Stefan
>
> since you use 'put', I think you just need request->body() to get the content.
> upload() is for 'post' only fyi.
>
> best wishes
> sunnavy
>
> On 10-11-22 16:53, Stefan Oberwahrenbrock wrote:
>> Hello!
>>
>> I have some trouble handling file uploads with my first dancer app. Maybe someone can point me in the right direction:
>>
>> To get hold of an uploaded file sent via PUT, I have set up this route handler:
>>
>> put '/upload/:file' =>  sub {
>>      my $upload = upload( params->{file} );
>>
>>      debug "My Log 1: " . params->{file};
>>      debug "My Log 2: " . ref($upload);
>> };
>>
>> To test the handler, I  feed it with some data sent by "curl":
>> curl --upload-file /srv/mydata.tar.gz http://localhost:3000/upload/
>>
>> As far as I understand the documentation, $upload should hold a reference to an object of typ Dancer::Request::Upload now. Thus, methods like "filename", "basename", "tempname" etc. should be accessible. The logfile looks quite good - at the beginning:
>> [3432] debug @0.003234>  [hit #1] trying to match `/upload/mydata.tar.gz' against /^\/upload\/([^\/]+)$/ in /usr/local/share/perl/5.10.0/Dancer/Route.pm l. 73
>> [3432] debug @0.003493>  [hit #1] My Log 1: mydata.tar.gz in lib/mywebapp.pm l. 26
>>
>> But the next line indicates, that $upload is not what I expect it to be:
>> [3432] debug @0.003550>  [hit #1] My Log 2:  in lib/mywebapp.pm l. 27
>>
>> In addition to that, calling one of methods mentioned above (e. g. "$upload->filename()" ), produces a runtime error:
>> Can't call method filename on an undefined value at...
>>
>> Probably I have not understood the upload() subroutine correctly - any hint is welcome!
>>
>> Thanks,
>> Stefan
>> -- 
>> GMX DSL Doppel-Flat ab 19,99€/mtl.! Jetzt auch mit
>> gratis Notebook-Flat! http://portal.gmx.net/de/go/dsl
>> _______________________________________________
>> Dancer-users mailing list
>> Dancer-users at perldancer.org
>> http://www.backup-manager.org/cgi-bin/listinfo/dancer-users
> _______________________________________________
> Dancer-users mailing list
> Dancer-users at perldancer.org
> http://www.backup-manager.org/cgi-bin/listinfo/dancer-users
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.backup-manager.org/pipermail/dancer-users/attachments/20110325/6096c6bc/attachment-0001.htm>


More information about the Dancer-users mailing list