? .DS_Store
? .cache
? .git
? .project
? .settings
? empty
? file_30520_3.patch
? logs
? includes/tests/file.test
? sites/all/modules
? sites/default/files
? sites/default/settings.php
? sites/default/test
Index: includes/file.inc
===================================================================
RCS file: /cvs/drupal/drupal/includes/file.inc,v
retrieving revision 1.130
diff -u -p -r1.130 file.inc
--- includes/file.inc	6 Sep 2008 08:36:19 -0000	1.130
+++ includes/file.inc	11 Sep 2008 21:20:48 -0000
@@ -526,25 +526,31 @@ function file_save_upload($source, $vali
   }
 
   // If a file was uploaded, process it.
-  if (isset($_FILES['files']) && $_FILES['files']['name'][$source] && is_uploaded_file($_FILES['files']['tmp_name'][$source])) {
-    // Check for file upload errors and return FALSE if a
-    // lower level system error occurred.
+  if (isset($_FILES['files']) && $_FILES['files']['name'][$source]) {
+    // Check for file upload errors and return FALSE if a lower level system
+    // error occurred.
     switch ($_FILES['files']['error'][$source]) {
       // @see http://php.net/manual/en/features.file-upload.errors.php
-      case UPLOAD_ERR_OK:
-        break;
-
       case UPLOAD_ERR_INI_SIZE:
+        drupal_set_message(t("The file %file could not be saved, because it exceeds the server's upload file size limit of %maxsize.", array('%file' => $_FILES['files']['name'][$source], '%maxsize' => format_size(parse_size(ini_get('upload_max_filesize'))))), 'error');
+        return FALSE;
+
       case UPLOAD_ERR_FORM_SIZE:
-        drupal_set_message(t('The file %file could not be saved, because it exceeds %maxsize, the maximum allowed size for uploads.', array('%file' => $source, '%maxsize' => format_size(file_upload_max_size()))), 'error');
+        drupal_set_message(t("The file %file could not be saved, because it exceeds this form's size limit for file uploads.", array('%file' => $_FILES['files']['name'][$source])), 'error');
         return FALSE;
 
       case UPLOAD_ERR_PARTIAL:
       case UPLOAD_ERR_NO_FILE:
-        drupal_set_message(t('The file %file could not be saved, because the upload did not complete.', array('%file' => $source)), 'error');
+        drupal_set_message(t('The file %file could not be saved, because the upload did not complete.', array('%file' => $_FILES['files']['name'][$source])), 'error');
         return FALSE;
 
-        // Unknown error
+      case UPLOAD_ERR_OK:
+        // Final check that this is a valid upload, if it isn't, use the
+        // default error handler.
+        if (is_uploaded_file($_FILES['files']['tmp_name'][$source])) {
+           break;
+        }
+
       default:
         drupal_set_message(t('The file %file could not be saved. An unknown error has occurred.', array('%file' => $source)), 'error');
         return FALSE;
