Diff for /loncom/publisher/lonupload.pm between versions 1.58 and 1.64

version 1.58, 2011/11/02 23:19:22 version 1.64, 2013/07/03 05:03:19
Line 125  use Apache::File; Line 125  use Apache::File;
 use File::Copy;  use File::Copy;
 use File::Basename;  use File::Basename;
 use Apache::Constants qw(:common :http :methods);  use Apache::Constants qw(:common :http :methods);
 use Apache::loncacc;  
 use Apache::loncommon();  use Apache::loncommon();
 use Apache::lonnet;  use Apache::lonnet;
 use HTML::Entities();  use HTML::Entities();
Line 162  sub upfile_store { Line 161  sub upfile_store {
 }  }
   
 sub phaseone {  sub phaseone {
     my ($r,$fn,$mode)=@_;      my ($r,$fn,$mode,$uname,$udom)=@_;
     my $action = '/adm/upload';      my $action = '/adm/upload';
     if ($mode eq 'testbank') {      if ($mode eq 'testbank') {
         $action = '/adm/testbank';          $action = '/adm/testbank';
Line 174  sub phaseone { Line 173  sub phaseone {
     $env{'form.upfile.filename'}=~s/\\/\//g;      $env{'form.upfile.filename'}=~s/\\/\//g;
     $env{'form.upfile.filename'}=~s/^.*\/([^\/]+)$/$1/;      $env{'form.upfile.filename'}=~s/^.*\/([^\/]+)$/$1/;
     if (!$env{'form.upfile.filename'}) {      if (!$env{'form.upfile.filename'}) {
         $r->print('<p class="LC_warning">'.&mt('No upload file specified.').'</p>');          $r->print('<p class="LC_warning">'.&mt('No upload file specified.').'</p>'.
                     &earlyout($fn,$uname,$udom));
         return;          return;
     }      }
   
Line 188  sub phaseone { Line 188  sub phaseone {
         $r->print('<p class="LC_warning">'.&mt('Illegal filename.').'</p>');          $r->print('<p class="LC_warning">'.&mt('Illegal filename.').'</p>');
         return;          return;
     }      }
       # Check if quota exceeded
       my $filesize = length($env{'form.upfile'});
       if (!$filesize) {
           $r->print('<p class="LC_warning">'.
                     &mt('Unable to upload [_1]. (size = [_2] bytes)',
                         '<span class="LC_filename">'.$env{'form.upfile.filename'}.'</span>',
                         $filesize).'<br />'.
                     &mt('Either the file you attempted to upload was empty, or your web browser was unable to read its contents.').'<br />'.
                     '</p>'.
                     &earlyout($fn,$uname,$udom));
           return;
       }
       $filesize = int($filesize/1000); #expressed in kb
       my $authorspace = $Apache::lonnet::perlvar{'lonDocRoot'}."/priv/$udom/$uname";
       my $output = &Apache::loncommon::excess_filesize_authorspace($uname,$udom,$authorspace,
                                                                    $env{'form.upfile.filename'},$filesize,'upload');
       if ($output) {
           $r->print($output.&earlyout($fn,$uname,$udom));
           return;
       }
   
 # Split part that I can change from the part that I cannot change  # Split part that I can change from the part that I cannot change
     my ($fn1,$fn2)=($fn=~/^(\/priv\/[^\/]+\/[^\/]+\/)(.*)$/);      my ($fn1,$fn2)=($fn=~/^(\/priv\/[^\/]+\/[^\/]+\/)(.*)$/);
     # Display additional options for upload      # Display additional options for upload
Line 446  sub phasefour { Line 467  sub phasefour {
     my $dir_root = $r->dir_config('lonDocRoot').$url_root;      my $dir_root = $r->dir_config('lonDocRoot').$url_root;
     my $path = &File::Basename::dirname($fn);      my $path = &File::Basename::dirname($fn);
     $path =~ s{^\Q$url_root\E}{};      $path =~ s{^\Q$url_root\E}{};
     $result .= &Apache::loncommon::modify_html_refs($mode,$path,      my $outcome = 
                               $uname,$udom,$dir_root);          &Apache::loncommon::modify_html_refs($mode,$path,$uname,$udom,$dir_root);
       $result .= $outcome;
     if ($mode ne 'imsimport' && $mode ne 'testbank') {      if ($mode ne 'imsimport' && $mode ne 'testbank') {
         $result .= '<br /><h3><a href="'.$fn.'">'.          $result .= '<br /><h3><a href="'.$fn.'">'.
                   &mt('View main file').'</a></h3>'.                    &mt('View main file').'</a></h3>'.
Line 457  sub phasefour { Line 479  sub phasefour {
     return $result;      return $result;
 }  }
   
   sub earlyout {
       my ($fn,$uname,$udom) = @_;
       if ($fn =~ m{^(/priv/$udom/$uname(?:.*)/)[^/]*}) {
           return &Apache::lonhtmlcommon::actionbox(
                  ['<a href="'.$1.'">'.&mt('Return to Directory').'</a>']);
       }
       return;
   }
   
 # ---------------------------------------------------------------- Main Handler  # ---------------------------------------------------------------- Main Handler
 sub handler {  sub handler {
   
Line 475  sub handler { Line 506  sub handler {
         return HTTP_NOT_FOUND;          return HTTP_NOT_FOUND;
     }      }
   
     my ($uname,$udom)=&Apache::loncacc::constructaccess($fn);      my ($uname,$udom)=&Apache::lonnet::constructaccess($fn);
   
     unless (($uname) && ($udom)) {      unless (($uname) && ($udom)) {
         $r->log_reason($uname.' at '.$udom.          $r->log_reason($uname.' at '.$udom.
Line 517  ENDJS Line 548  ENDJS
     $trailfile =~ s{^/(priv/)}{$londocroot/$1};      $trailfile =~ s{^/(priv/)}{$londocroot/$1};
   
     # Breadcrumbs      # Breadcrumbs
     my $brcrum = [{'href' => &Apache::loncommon::authorspace(),      my $brcrum = [{'href' => &Apache::loncommon::authorspace($fn),
                    'text' => 'Construction Space'},                     'text' => 'Authoring Space'},
                   {'href' => '/adm/upload',                    {'href' => '/adm/upload',
                    'text' => 'Upload file to Construction Space'}];                     'text' => 'Upload file to Authoring Space'}];
     $r->print(&Apache::loncommon::start_page('Upload file to Construction Space',      $r->print(&Apache::loncommon::start_page('Upload file to Authoring Space',
                                              $javascript,                                               $javascript,
                                              {'bread_crumbs' => $brcrum,})                                               {'bread_crumbs' => $brcrum,})
              .&Apache::loncommon::head_subbox(               .&Apache::loncommon::head_subbox(
Line 544  ENDJS Line 575  ENDJS
  my ($output,$returnflag) = &phasetwo($r,$fn);   my ($output,$returnflag) = &phasetwo($r,$fn);
         $r->print($output);          $r->print($output);
     } else {      } else {
  &phaseone($r,$fn);   &phaseone($r,$fn,undef,$uname,$udom);
     }      }
   
     $r->print(&Apache::loncommon::end_page());      $r->print(&Apache::loncommon::end_page());

Removed from v.1.58  
changed lines
  Added in v.1.64


FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>