[LON-CAPA-cvs] cvs: loncom /interface lonpdfupload.pm doc/loncapafiles loncapafiles.lpml

raeburn raeburn at source.lon-capa.org
Fri Apr 3 13:35:03 EDT 2026


raeburn		Fri Apr  3 17:35:03 2026 EDT

  Modified files:              
    /doc/loncapafiles	loncapafiles.lpml 
    /loncom/interface	lonpdfupload.pm 
  Log:
  - Bug 6121. Server-side checking of uploaded file size when using "PDF Forms".
    Delete $env{'form.file'} which contains contents of uploaded file after use.
  
  
Index: doc/loncapafiles/loncapafiles.lpml
diff -u doc/loncapafiles/loncapafiles.lpml:1.797.2.131.2.2 doc/loncapafiles/loncapafiles.lpml:1.797.2.131.2.3
--- doc/loncapafiles/loncapafiles.lpml:1.797.2.131.2.2	Tue Jan  4 05:44:34 2022
+++ doc/loncapafiles/loncapafiles.lpml	Tue Jan  4 06:03:24 2022
@@ -2,7 +2,7 @@
  "http://lpml.sourceforge.net/DTD/lpml.dtd">
 <!-- loncapafiles.lpml -->
 
-<!-- $Id: loncapafiles.lpml,v 1.797.2.131.2.2 2022/01/04 05:44:34 raeburn Exp $ -->
+<!-- $Id: loncapafiles.lpml,v 1.797.2.131.2.3 2022/01/04 06:03:24 raeburn Exp $ -->
 
 <!--
 
@@ -3506,7 +3506,7 @@
 Course_Prefs_Classlists.tex;
 Course_Prefs_Feedback.tex;
 Course_Prefs_Language.tex;
-Course_Prefs_Linkprotection;
+Course_Prefs_Linkprotection.tex;
 Course_Prefs_Menus.tex;
 Course_Prefs_Spreadsheet.tex;
 Course_Prefs_Discussions.tex;
Index: loncom/interface/lonpdfupload.pm
diff -u loncom/interface/lonpdfupload.pm:1.39 loncom/interface/lonpdfupload.pm:1.40
--- loncom/interface/lonpdfupload.pm:1.39	Sat Mar 28 18:10:32 2026
+++ loncom/interface/lonpdfupload.pm	Fri Apr  3 17:35:03 2026
@@ -1,7 +1,7 @@
 # The LearningOnline Network with CAPA
 # PDF Form Upload Handler
 #
-# $Id: lonpdfupload.pm,v 1.39 2026/03/28 18:10:32 raeburn Exp $
+# $Id: lonpdfupload.pm,v 1.40 2026/04/03 17:35:03 raeburn Exp $
 #
 # Copyright Michigan State University Board of Trustees
 #
@@ -53,6 +53,9 @@
     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";
+        if ($env{'form.Uploaded'} && $env{'form.file'}) {
+            delete($env{'form.file'});
+        }
         return HTTP_NOT_ACCEPTABLE;
     }
 
@@ -70,6 +73,9 @@
             unless ((&Apache::lonnet::allowed('evb',undef,undef,$checkrole)) &&
                     ($env{'request.role'} !~ m{^st\./$cdom/$cnum})) {
                 &pdfforms_blocked($r,$blocktext);
+                if ($env{'form.Uploaded'} && $env{'form.file'}) {
+                    delete($env{'form.file'});
+                }
                 return OK;
             }
         }
@@ -96,6 +102,9 @@
                       '</p>'.
                       '</div>'.
                       &Apache::loncommon::end_page());
+            if ($env{'form.Uploaded'} && $env{'form.file'}) {
+                delete($env{'form.file'});
+            }
             return OK;
         }
     } else {
@@ -105,6 +114,9 @@
                   '</p>'.
                   '</div>'.
                   &Apache::loncommon::end_page());
+        if ($env{'form.Uploaded'} && $env{'form.file'}) {
+            delete($env{'form.file'});
+        }
         return OK;
     }
 
@@ -205,11 +217,29 @@
 
 sub processPDF {
     my $result; # message for Browser
+    my $maxsize = &Apache::loncommon::pdfform_maxbytes();
+    if (length($env{'form.file'}) > $maxsize) {
+        my $showlimit = $maxsize/(1024 * 1024);
+        if ($showlimit <= 0.0005) {
+            $showlimit = 0.001;
+        } else {
+            $showlimit = sprintf("%.3f",$showlimit);
+            $showlimit =~ s/0+$//;
+        }
+        $result = '<h2 class="LC_heading_2">'.&mt('Result of PDF Form upload').'</h2>'
+                 .'<p class="LC_error">'
+                 .&mt('Size of uploaded file exceeded the [_1] MB size limit for a single PDF Forms file.',
+                      $showlimit)
+                 .'</p>';
+        delete($env{'form.file'});
+        return $result;
+    }
+
     my @pdfdata = (); # answers from PDF-Forms
     my $error;
-    
+
     ($error, at pdfdata) = &get_pdf_data(); # get answers from PDF-Form
-    
+
     if (scalar(@pdfdata)) {    
         $result = &grade_pdf($error, at pdfdata);
     } else {




More information about the LON-CAPA-cvs mailing list