Permalink
Browse files

Changes to improve robustness of uploads, and make things compatible

with PHP 4.3.0.  Also some translation fixes with upload strings.
  • Loading branch information...
1 parent 8556ae8 commit 3b7c1de95eea15feb495d1212ac8face80af4c0e moodler committed Jan 5, 2003
Showing with 35 additions and 15 deletions.
  1. +22 −10 files/index.php
  2. +3 −0 lang/en/moodle.php
  3. +7 −2 mod/assignment/upload.php
  4. +2 −2 mod/forum/lib.php
  5. +1 −1 mod/forum/post.php
View
@@ -92,18 +92,25 @@ function html_header($course, $wdir, $formfield=""){
case "upload":
html_header($course, $wdir);
- if ($save) {
- if (!is_uploaded_file($userfile['tmp_name']) and $userfile['size'] > 0) {
- echo "<P>Error: That was not a valid file.";
+ if (!empty($_FILES['userfile'])) {
+ $userfile = $_FILES['userfile'];
+ } else {
+ $save = false;
+ }
+ if (!empty($save)) {
+ if (!is_uploaded_file($userfile['tmp_name']) or $userfile['size'] == 0) {
+ notify(get_string("uploadnofilefound"));
} else {
$userfile_name = clean_filename($userfile['name']);
if ($userfile_name) {
$newfile = "$basedir$wdir/$userfile_name";
if (move_uploaded_file($userfile['tmp_name'], $newfile)) {
- echo "Uploaded $userfile_name (".$userfile['type'].") to $wdir";
+ $a = NULL;
+ $a->file = "$userfile_name (".$userfile['type'].")";
+ $a->directory = $wdir;
+ print_string("uploadedfileto", "", $a);
} else {
- echo "A problem occurred while uploading '$userfile_name'";
- echo " (possibly it was too large)";
+ notify(get_string("uploadproblem", "", $userfile_name));
}
}
}
@@ -113,23 +120,28 @@ function html_header($course, $wdir, $formfield=""){
$upload_max_filesize = get_max_upload_file_size();
$filesize = display_size($upload_max_filesize);
- echo "<P>Upload a file (maximum size $filesize) into <B>$wdir</B>:";
+ $struploadafile = get_string("uploadafile");
+ $struploadthisfile = get_string("uploadthisfile");
+ $strmaxsize = get_string("maxsize", "", $filesize);
+ $strcancel = get_string("cancel");
+
+ echo "<P>$struploadafile ($strmaxsize) --> <B>$wdir</B>";
echo "<TABLE><TR><TD COLSPAN=2>";
echo "<FORM ENCTYPE=\"multipart/form-data\" METHOD=\"post\" ACTION=index.php>";
echo " <INPUT TYPE=hidden NAME=MAX_FILE_SIZE value=\"$upload_max_filesize\">";
echo " <INPUT TYPE=hidden NAME=id VALUE=$id>";
echo " <INPUT TYPE=hidden NAME=wdir VALUE=$wdir>";
echo " <INPUT TYPE=hidden NAME=action VALUE=upload>";
- echo " <INPUT NAME=\"userfile\" TYPE=\"file\" size=\"50\">";
+ echo " <INPUT NAME=\"userfile\" TYPE=\"file\" size=\"60\">";
echo " </TD><TR><TD WIDTH=10>";
- echo " <INPUT TYPE=submit NAME=save VALUE=\"Upload this file\">";
+ echo " <INPUT TYPE=submit NAME=save VALUE=\"$struploadthisfile\">";
echo "</FORM>";
echo "</TD><TD WIDTH=100%>";
echo "<FORM ACTION=index.php METHOD=get>";
echo " <INPUT TYPE=hidden NAME=id VALUE=$id>";
echo " <INPUT TYPE=hidden NAME=wdir VALUE=$wdir>";
echo " <INPUT TYPE=hidden NAME=action VALUE=cancel>";
- echo " <INPUT TYPE=submit VALUE=\"Cancel\">";
+ echo " <INPUT TYPE=submit VALUE=\"$strcancel\">";
echo "</FORM>";
echo "</TD></TR></TABLE>";
}
View
@@ -496,6 +496,9 @@
$string['updatethis'] = "Update this \$a";
$string['upload'] = "Upload";
$string['uploadafile'] = "Upload a file";
+$string['uploadedfileto'] = "Uploaded \$a->file to \$a->directory";
+$string['uploadnofilefound'] = "No file was found - are you sure you selected one to upload?";
+$string['uploadproblem'] = "An unknown problem occurred while uploading the file '\$a' (perhaps it was too large?)";
$string['uploadthisfile'] = "Upload this file";
$string['userdeleted'] = "This user account has been deleted";
$string['userdescription'] = "Description";
@@ -5,7 +5,9 @@
require_variable($id); // Assignment ID
- $newfile = $HTTP_POST_FILES["newfile"];
+ if (!empty($_FILES['newfile'])) {
+ $newfile = $_FILES['newfile'];
+ }
if (! $assignment = get_record("assignment", "id", $id)) {
error("Not a valid assignment ID");
@@ -41,7 +43,10 @@
error("Sorry, an error in the system prevents you from uploading files: contact your teacher or system administrator");
}
- if (is_uploaded_file($newfile['tmp_name']) and $newfile['size'] > 0) {
+ if (empty($newfile)) {
+ notify(get_string("uploadnofilefound", "assignment") );
+
+ } else if (is_uploaded_file($newfile['tmp_name']) and $newfile['size'] > 0) {
if ($newfile['size'] > $assignment->maxbytes) {
notify(get_string("uploadfiletoobig", "assignment", $assignment->maxbytes));
} else {
View
@@ -1159,10 +1159,10 @@ function forum_print_attachments($post, $return=NULL) {
function forum_add_attachment($post, $newfile) {
// $post is a full post record, including course and forum
-// $newfile is a full upload array from HTTP_POST_FILES
+// $newfile is a full upload array from $_FILES
// If successful, this function returns the name of the file
- if (!isset($newfile['name'])) {
+ if (empty($newfile['name'])) {
return "";
}
View
@@ -15,7 +15,7 @@
$post->subject = strip_tags($post->subject); // Strip all tags
$post->message = clean_text($post->message, $post->format); // Clean up any bad tags
- $post->attachment = $HTTP_POST_FILES["attachment"];
+ $post->attachment = $_FILES["attachment"];
if (!$post->subject and !$post->message) {
error(get_string("emptymessage", "forum"));

0 comments on commit 3b7c1de

Please sign in to comment.