version 1.15, 2010/03/18 13:16:11
|
version 1.16, 2010/03/18 14:50:15
|
Line 33 use Apache::lonnet;
|
Line 33 use Apache::lonnet;
|
use Apache::lonhtmlcommon(); |
use Apache::lonhtmlcommon(); |
use Apache::loncommon(); |
use Apache::loncommon(); |
use Apache::lonlocal; |
use Apache::lonlocal; |
|
use File::MMagic; |
use CAM::PDF; |
use CAM::PDF; |
|
|
use strict; |
use strict; |
Line 43 sub handler() {
|
Line 44 sub handler() {
|
$r->send_http_header; |
$r->send_http_header; |
return OK if $r->header_only; |
return OK if $r->header_only; |
|
|
|
# Needs to be in a course |
|
if (!$env{'request.course.fn'}) { |
|
# Not in a course |
|
$env{'user.error.msg'}="/adm/pdfupload:bre:0:0:Cannot upload PDF forms unless in a course"; |
|
return HTTP_NOT_ACCEPTABLE; |
|
} |
|
|
# Breadcrumbs |
# Breadcrumbs |
my $brcrum = [{'href' => '/adm/pdfupload', |
my $brcrum = [{'href' => '/adm/pdfupload', |
'text' => 'Upload PDF Form'}]; |
'text' => 'Upload PDF Form'}]; |
|
if ($env{'form.Uploaded'} && $env{'form.file'}) { |
|
push(@{$brcrum},{'href' => '', |
|
'text' => 'PDF upload result'}); |
|
} |
|
|
$r->print(&Apache::loncommon::start_page('Upload PDF Form', |
$r->print(&Apache::loncommon::start_page('Upload PDF Form', |
undef, |
undef, |
{'bread_crumbs' => $brcrum,}) |
{'bread_crumbs' => $brcrum,}) |
); |
); |
|
|
|
if ($env{'request.course.id'}) { |
|
my $permission = $env{'course.'.$env{'request.course.id'}.'.canuse_pdfforms'}; |
|
if ($permission eq '') { |
|
my %domdefs = &Apache::lonnet::get_domain_defaults($env{'course.'.$env{'request.course.id'}.'.domain'}); |
|
$permission = $domdefs{'canuse_pdfforms'}; |
|
} |
|
unless ($permission) { |
|
$r->print('<p class="LC_warning">'. |
|
&mt('Upload of PDF forms is not permitted for this course.'). |
|
'</p>'. |
|
&Apache::loncommon::end_page()); |
|
return OK; |
|
} |
|
} else { |
|
$r->print('<p class="LC_warning">'. |
|
&mt('Could not determine identity of this course. you may need to [_1]re-select[_2] the course.','<a href="/adm/roles">','</a>'). |
|
'</p>'. |
|
&Apache::loncommon::end_page()); |
|
return OK; |
|
} |
|
|
# if a file was upload |
# if a file was upload |
if($env{'form.Uploaded'} && $env{'form.file'}) { |
if($env{'form.Uploaded'} && $env{'form.file'}) { |
$r->print(&processPDF); |
my $mm = new File::MMagic; |
|
my $mime_type = $mm->checktype_contents($env{'form.file'}); |
|
if ($mime_type eq 'application/pdf') { |
|
$r->print(&processPDF); |
|
} else { |
|
$r->print('<p class="LC_error">' |
|
.&mt("The uploaded file does not appear to be a PDF file.") |
|
.'</p>'); |
|
} |
} else { |
} else { |
# print upload form |
# print upload form |
$r->print(&get_javascripts); |
$r->print(&get_javascripts); |