--- loncom/publisher/lonupload.pm 2008/12/12 02:32:27 1.42 +++ loncom/publisher/lonupload.pm 2010/02/16 10:26:17 1.49 @@ -2,7 +2,7 @@ # The LearningOnline Network with CAPA # Handler to upload files into construction space # -# $Id: lonupload.pm,v 1.42 2008/12/12 02:32:27 raeburn Exp $ +# $Id: lonupload.pm,v 1.49 2010/02/16 10:26:17 bisitz Exp $ # # Copyright Michigan State University Board of Trustees # @@ -165,59 +165,74 @@ sub phaseone { } elsif ($mode eq 'imsimport') { $action = '/adm/imsimport'; } + + # Check for file to be uploaded $env{'form.upfile.filename'}=~s/\\/\//g; $env{'form.upfile.filename'}=~s/^.*\/([^\/]+)$/$1/; - if ($env{'form.upfile.filename'}) { - $fn=~s/\/[^\/]+$//; - $fn=~s/([^\/])$/$1\//; - $fn.=$env{'form.upfile.filename'}; - $fn=~s/^\///; - $fn=~s/(\/)+/\//g; + if (!$env{'form.upfile.filename'}) { + $r->print('
'.&mt('No upload file specified.').'
'); + return; + } + + $fn=~s/\/[^\/]+$//; + $fn=~s/([^\/])$/$1\//; + $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"); + if (!(($fn) && ($fn!~/\/$/))) { + $r->print(''.&mt('Illegal filename.').'
'); + return; + } + + # Display additional options for upload + # and upload button + $r->print( + '' + ); -# Fn is the full path to the destination filename. -# - - &Debug($r, "Filename for upload: $fn"); - if (($fn) && ($fn!~/\/$/)) { - $r->print(''); - # Check for bad extension and warn user - if ($fn=~/\.(\w+)$/ && - (&Apache::loncommon::fileembstyle($1) eq 'hdn')) { + # Check for bad extension and warn user + if ($fn=~/\.(\w+)$/ && + (&Apache::loncommon::fileembstyle($1) eq 'hdn')) { $r->print(''
- .&mt('The extension on this file, [_1], is reserved internally by LON-CAPA.','"'.$1.'"')
+ .&mt('The extension on this file, [_1], is reserved internally by LON-CAPA.',
+ ''.$1.'')
.'
'.&mt('Please change the extension.')
.'
'
- .&mt('The extension on this file, [_1], is not recognized by LON-CAPA.','"'.$1.'"')
+ .&mt('The extension on this file, [_1], is not recognized by LON-CAPA.',
+ ''.$1.'')
.'
'.&mt('Please change the extension.')
.'
'.&mt('Upload cancelled.').'
' + .''. + &mt('Back to Directory').'
'; + } elsif ((-e $target) && (!$env{'form.override'})) { + $output .= ''; } else { my $source=$r->dir_config('lonDaemons').'/tmp/'.$datatoken.'.tmp'; my $dirpath=$path.'/'; @@ -289,31 +309,39 @@ sub check_extension { # Check for bad extension and disallow upload if ($fn=~/\.(\w+)$/ && (&Apache::loncommon::fileembstyle($1) eq 'hdn')) { - $result .= &mt('File [_1] could not be copied.', - ''.$fn.' '). - ''. - &mt('The extension on this file is reserved internally by LON-CAPA.'). - '
'; + $result .= ''.
+ &mt('File [_1] could not be copied.',
+ ''.$fn.' ').
+ '
'.
+ &mt('The extension on this file is reserved internally by LON-CAPA.').
+ '
'. - &mt('The extension on this file is not recognized by LON-CAPA.'). - '
'; + $result .= ''.
+ &mt('File [_1] could not be copied.',
+ ''.$fn.' ').
+ '
'.
+ &mt('The extension on this file is not recognized by LON-CAPA.').
+ '
'. - &mt('The target is an existing directory.'). - '
'; + $result .= ''.
+ &mt('File [_1] could not be copied.',
+ ''.$fn.'').
+ '
'.
+ &mt('The target is an existing directory.').
+ '
' + .&mt('Your file - [_1] - was uploaded successfully.', + ''.$fn.'') + .'
'; } else { - $result .= &mt('File copied.').'' + .&mt('File copied.') + .'
'; } # Check for embedded objects. my (%allfiles,%codebase); @@ -342,15 +370,15 @@ STATE } } if (($mode ne 'imsimport') && ($mode ne 'testbank')) { - $result .= '' + .&mt('Co-Author [_1]',$uname.':'.$udom) + .'
' + ); } if ($env{'form.phase'} eq 'three') {