jQuery-File-Upload-Imager
view release on metacpan - search on metacpan
view release on metacpan or search on metacpan
lib/jQuery/File/Upload/Imager.pm view on Meta::CPAN
}
$self->{url} = $self->upload_url_base . '/' . $self->filename;
}
sub _set_uri {
my $self = shift;
#if catalyst, use URI already made?
if(defined $self->ctx) {
$self->{uri} = $self->ctx->req->uri;
}
else {
$self->{uri} = URI->new($self->script_url);
}
}
sub _generate_error {
my $self = shift;
return undef unless defined $self->{error} and @{$self->{error}};
my $restrictions = join ',', @{$self->{error}->[1]};
return $errors{$self->{error}->[0]} . " Restriction: $restrictions Provided: " . $self->{error}->[2];
}
sub _validate_file {
my $self = shift;
return undef unless
$self->_validate_max_file_size and
$self->_validate_min_file_size and
$self->_validate_accept_file_types and
$self->_validate_max_width and
$self->_validate_min_width and
$self->_validate_max_height and
$self->_validate_min_height and
$self->_validate_max_number_of_files;
return 1;
}
sub _save {
my $self = shift;
if(@{$self->scp}) {
$self->_save_scp;
}
else {
$self->_save_local;
}
}
sub _save_scp {
my $self = shift;
for(@{$self->scp}) {
die "Must provide a host to scp" if $_->{host} eq '';
$_->{thumbnail_upload_dir} = $_->{upload_dir} if $_->{thumbnail_upload_dir} eq '';
my $path = $_->{upload_dir} . '/' . $self->filename;
my $thumb_path = $_->{thumbnail_upload_dir} . '/' . $self->thumbnail_filename;
if(($_->{user} ne '' and $_->{public_key} ne '' and $_->{private_key} ne '') or ($_->{user} ne '' and $_->{password} ne '')) {
my $ssh2 = $self->_auth_user($_);
#if it is an image, scp both file and thumbnail
if($self->is_image) {
$ssh2->scp_put($self->{tmp_file_path}, $path);
$ssh2->scp_put($self->{tmp_thumb_path}, $thumb_path);
}
else {
$ssh2->scp_put($self->{tmp_filename}, $path);
}
$ssh2->disconnect;
}
else {
die "Must provide a user and password or user and identity file for connecting to host";
}
}
}
sub _auth_user {
my $self = shift;
my ($auth) = @_;
my $ssh2 = Net::SSH2->new;
$ssh2->connect($auth->{host}) or die $!;
#authenticate
if($auth->{user} ne '' and $auth->{public_key} ne '' and $auth->{private_key} ne '') {
$ssh2->auth_publickey($auth->{user},$auth->{public_key},$auth->{private_key});
}
else {
$ssh2->auth_password($auth->{user},$auth->{password});
}
unless($ssh2->auth_ok) {
die "error authenticating with remote server";
}
die "upload directory must be provided with scp hash" if $auth->{upload_dir} eq '';
return $ssh2;
}
sub _save_local {
my $self = shift;
#if image
if($self->is_image) {
rename $self->{tmp_file_path}, $self->absolute_filename;
rename $self->{tmp_thumb_path}, $self->absolute_thumbnail_filename;
}
#if non-image with catalyst
elsif(defined $self->ctx) {
$self->{upload}->link_to($self->absolute_filename);
}
#if non-image with regular CGI perl
else {
my $io_handle = $self->{fh}->handle;
my $buffer;
open (OUTFILE,'>', $self->absolute_filename);
while (my $bytesread = $io_handle->read($buffer,1024)) {
print OUTFILE $buffer;
}
close OUTFILE;
}
}
sub _validate_max_file_size {
my $self = shift;
return 1 unless $self->max_file_size;
if($self->{file_size} > $self->max_file_size) {
$self->{error} = ['_validate_max_file_size',[$self->max_file_size],$self->{file_size}];
return undef;
}
else {
return 1;
}
}
sub _validate_min_file_size {
my $self = shift;
return 1 unless $self->min_file_size;
if($self->{file_size} < $self->min_file_size) {
$self->{error} = ['_validate_min_file_size',[$self->min_file_size],$self->{file_size}];
return undef;
}
view all matches for this distributionview release on metacpan - search on metacpan
( run in 0.627 second using v1.00-cache-2.02-grep-82fe00e-cpan-2cc899e4a130 )