--- loncom/publisher/lonupload.pm 2010/02/16 10:26:17 1.49 +++ loncom/publisher/lonupload.pm 2013/07/03 05:03:19 1.64 @@ -1,8 +1,7 @@ - # The LearningOnline Network with CAPA # Handler to upload files into construction space # -# $Id: lonupload.pm,v 1.49 2010/02/16 10:26:17 bisitz Exp $ +# $Id: lonupload.pm,v 1.64 2013/07/03 05:03:19 raeburn Exp $ # # Copyright Michigan State University Board of Trustees # @@ -70,7 +69,7 @@ Start page output =item * -output relevant interface phase (phaseone or phasetwo or phasethree) +output relevant interface phase (phaseone, phasetwo, phasethree or phasefour) =item * @@ -99,6 +98,11 @@ as overwriting an existing file). Interface for handling secondary uploads of embedded objects in an html file. +=item phasefour() + +Interface for handling optional renaming of links to embedded +objects. + =item upfile_store() Store contents of uploaded file into temporary space. Invoked @@ -121,7 +125,6 @@ use Apache::File; use File::Copy; use File::Basename; use Apache::Constants qw(:common :http :methods); -use Apache::loncacc; use Apache::loncommon(); use Apache::lonnet; use HTML::Entities(); @@ -158,7 +161,7 @@ sub upfile_store { } sub phaseone { - my ($r,$fn,$uname,$udom,$mode)=@_; + my ($r,$fn,$mode,$uname,$udom)=@_; my $action = '/adm/upload'; if ($mode eq 'testbank') { $action = '/adm/testbank'; @@ -170,16 +173,14 @@ sub phaseone { $env{'form.upfile.filename'}=~s/\\/\//g; $env{'form.upfile.filename'}=~s/^.*\/([^\/]+)$/$1/; if (!$env{'form.upfile.filename'}) { - $r->print('
'.&mt('No upload file specified.').'
'); + $r->print(''.&mt('No upload file specified.').'
'. + &earlyout($fn,$uname,$udom)); return; } - $fn=~s/\/[^\/]+$//; - $fn=~s/([^\/])$/$1\//; + # Append the name of the uploaded file $fn.=$env{'form.upfile.filename'}; - $fn=~s/^\///; $fn=~s/(\/)+/\//g; - # Fn is the full path to the destination filename. # Check for illegal filename &Debug($r, "Filename for upload: $fn"); @@ -187,20 +188,42 @@ sub phaseone { $r->print(''.&mt('Illegal filename.').'
'); return; } + # Check if quota exceeded + my $filesize = length($env{'form.upfile'}); + if (!$filesize) { + $r->print(''.
+ &mt('Unable to upload [_1]. (size = [_2] bytes)',
+ ''.$env{'form.upfile.filename'}.'',
+ $filesize).'
'.
+ &mt('Either the file you attempted to upload was empty, or your web browser was unable to read its contents.').'
'.
+ '