';
+ } elsif ((-e $target) && (!$env{'form.override'})) {
+ $output .= '';
} else {
my $source=$r->dir_config('lonDaemons').'/tmp/'.$datatoken.'.tmp';
my $dirpath=$path.'/';
@@ -201,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.').
+ '
';
} elsif ($fn=~/\.(\w+)$/ &&
!defined(&Apache::loncommon::fileembstyle($1))) {
- $result .= &mt('File [_1] could not be copied.',
- ''.$fn.' ').
- ' '.
- &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.').
+ '
';
} elsif (-d $target) {
- $result .= &mt('File [_1] could not be copied.',
- ''.$fn.'').
- ' '.
- &mt('The target is an existing directory.').
- '';
+ $result .= '
'.
+ &mt('File [_1] could not be copied.',
+ ''.$fn.'').
+ ' '.
+ &mt('The target is an existing directory.').
+ '
';
} elsif (copy($source,$target)) {
chmod(0660, $target); # Set permissions to rw-rw---.
if ($mode eq 'testbank' || $mode eq 'imsimport') {
$returnflag = 'ok';
- $result .= &mt('Your file - [_1] - was uploaded successfully',$fn).'
'.&mt('Or [_1]continue[_2] the testbank import without these files','','').'
';
@@ -254,15 +374,15 @@ STATE
}
}
if (($mode ne 'imsimport') && ($mode ne 'testbank')) {
- $result .= ' '.
- &mt('View file').'';
+ $result .= ' '.
+ &mt('View file').'';
}
} else {
$result .= &mt('Failed to copy: [_1].',$!);
}
if ($mode ne 'imsimport' && $mode ne 'testbank') {
- $result .= ' '.
- &mt('Back to Directory').' ';
+ $result .= ' '.
+ &mt('Back to Directory').' ';
}
return ($result,$returnflag);
}
@@ -333,7 +453,7 @@ function verifyForm() {
my $fn;
if ($env{'form.filename'}) {
$fn=$env{'form.filename'};
- $fn=~s/^http\:\/\/[^\/]+\///;
+ $fn=~s/^https?\:\/\/[^\/]+\///;
$fn=~s/^\///;
$fn=~s{(~|priv/)($LONCAPA::username_re)}{};
$fn=~s/\/+/\//g;
@@ -352,12 +472,23 @@ function verifyForm() {
$javascript = "\n";
+ # Breadcrumbs
+ my $brcrum = [{'href' => &Apache::loncommon::authorspace(),
+ 'text' => 'Construction Space'},
+ {'href' => '/adm/upload',
+ 'text' => 'Upload file to Construction Space'}];
$r->print(&Apache::loncommon::start_page('Upload file to Construction Space',
- $javascript));
+ $javascript,
+ {'bread_crumbs' => $brcrum,})
+ .&Apache::loncommon::head_subbox(
+ &Apache::loncommon::CSTR_pageheader())
+ );
if (($uname ne $env{'user.name'}) || ($udom ne $env{'user.domain'})) {
- $r->print('
'.&mt('Co-Author').': '.$uname.
- &mt(' at ').$udom.'
');
+ $r->print('
'
+ .&mt('Co-Author [_1]',$uname.':'.$udom)
+ .'
'
+ );
}
if ($env{'form.phase'} eq 'three') {
@@ -377,88 +508,4 @@ function verifyForm() {
1;
__END__
-=head1 NAME
-
-Apache::lonupload - upload files into construction space
-
-=head1 SYNOPSIS
-
-Invoked by /etc/httpd/conf/srm.conf:
-
-
- PerlAccessHandler Apache::lonacc
- SetHandler perl-script
- PerlHandler Apache::lonupload
- ErrorDocument 403 /adm/login
- ErrorDocument 404 /adm/notfound.html
- ErrorDocument 406 /adm/unauthorized.html
- ErrorDocument 500 /adm/errorhandler
-
-
-=head1 INTRODUCTION
-
-This module uploads a file sitting on a client computer into
-library server construction space.
-
-This is part of the LearningOnline Network with CAPA project
-described at http://www.lon-capa.org.
-
-=head1 HANDLER SUBROUTINE
-
-This routine is called by Apache and mod_perl.
-
-=over 4
-
-=item *
-
-Initialize variables
-
-=item *
-
-Start page output
-=item *
-
-output relevant interface phase (phaseone or phasetwo or phasethree)
-
-=item *
-
-(phase one is to specify upload file; phase two is to handle conditions
-subsequent to specification--like overwriting an existing file; phase three
-is to handle processing of secondary uploads - of embedded objects in an
-html file).
-
-=back
-
-=head1 OTHER SUBROUTINES
-
-=over 4
-
-=item *
-
-phaseone() : Interface for specifying file to upload.
-
-=item *
-
-phasetwo() : Interface for handling post-conditions about uploading (such
-as overwriting an existing file).
-
-=item *
-
-phasethree() : Interface for handling secondary uploads of embedded objects
-in an html file.
-
-=item *
-
-upfile_store() : Store contents of uploaded file into temporary space. Invoked
-by phaseone subroutine.
-
-=item *
-
-check_extension() : Checks if filename extension is permitted and checks type
- of file - if html file, calls parser to check for embedded objects.
- Invoked by phasetwo subroutine.
-
-=back
-
-=cut