2016-01-10 9:55 GMT-06:00 Andrew Beverley <andy@andybev.com>:
On Sun, 2016-01-10 at 07:39 -0600, Richard Reina wrote:
$upload_dir was being set just before the get route -- which I realize is not correct
As an aside, it's probably best practice to define in your config file, rather than hard-coding into your code. That won't be a cause of your problem though.
post '/upload' => sub {
my $upload_route = '/upload'; my $upload_dir = 'public/profile_pics';
Have you tried using an absolute path? Or even tried something with open permissions like "/tmp"?
my $user_id = session 'UID'; my $d_filename = 'user_' . $user_id . '.jpg';
my $file = request->upload('file'); my $tmpname = $file->tempname; debug "File Size: ", $file->size; debug "file: ", $file->filename; debug "tmpname: ", $file->tempname, my $destination = $upload_dir . '/' . $d_filename; debug "Destination: $destination\n"; my ($crslt) = $file->copy_to($destination) || warn $!;
Do you get any warnings here? TBH, I don't even know if the precedence of the operators there will work correctly. I would always use "or" instead of "||" in a situation like that.
It would also be worth doing a "warn 'test'" to check that your warnings are being logged somewhere that you can see them.
Andy
Andy, Thanks for the ideas. Absolute paths worked. Thanks again everybody for the helpful replies.