Diff for /loncom/publisher/lonupload.pm between versions 1.62 and 1.63

version 1.62, 2013/06/04 22:20:16 version 1.63, 2013/07/02 19:04:49
Line 161  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 173  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 187  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 $disk_quota = &Apache::loncommon::get_user_quota($uname,$udom,'author'); #expressed in Mb
       $disk_quota = int($disk_quota * 1000);
       my $londocroot = $Apache::lonnet::perlvar{'lonDocRoot'};
       my $current_disk_usage = &Apache::lonnet::diskusage($udom,$uname,"$londocroot/priv/$udom/$uname");
       if (($current_disk_usage + $filesize) > $disk_quota){
           $r->print('<span class="LC_warning">'.
                     &mt('Unable to upload [_1]. (size = [_2] kilobytes). Disk quota will be exceeded.','<span class="LC_filename">'.$env{'form.upfile.filename'}.'</span>',$filesize).'</span>'.
                     '<br />'.&mt('Disk quota is [_1] kilobytes. Your current disk usage is [_2] kilobytes.',$disk_quota,$current_disk_usage).
                     '</p>'.
                     &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 457  sub phasefour { Line 484  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 544  ENDJS Line 580  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.62  
changed lines
  Added in v.1.63


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