added greater precision to $_FILE upload errors
diff --git a/system/language/english/upload_lang.php b/system/language/english/upload_lang.php
index 6837c8a..ab155ac 100644
--- a/system/language/english/upload_lang.php
+++ b/system/language/english/upload_lang.php
@@ -2,7 +2,11 @@
 
 $lang['upload_userfile_not_set'] = "Unable to find a post variable called userfile.";
 $lang['upload_file_exceeds_limit'] = "The uploaded file exceeds the maximum allowed size in your PHP configuration file";
+$lang['upload_file_exceeds_form_limit'] = "The uploaded file exceeds the maximum size allowed by the submission form.";
 $lang['upload_file_partial'] = "The file was only partially uploaded";
+$lang['upload_no_temp_directory'] = "The temporary folder is missing.";
+$lang['upload_unable_to_write_file'] = "The file could not be written to disk.";
+$lang['upload_stopped_by_extension'] = "The file upload was stopped by extension.";
 $lang['upload_no_file_selected'] = "You did not select a file to upload";
 $lang['upload_invalid_filetype'] = "The filetype you are attempting to upload is not allowed";
 $lang['upload_invalid_filesize'] = "The file you are attempting to upload is larger than the permitted size";
diff --git a/system/libraries/Upload.php b/system/libraries/Upload.php
index d045fd2..387f725 100644
--- a/system/libraries/Upload.php
+++ b/system/libraries/Upload.php
@@ -154,11 +154,26 @@
 

 			switch($error)

 			{

-				case 1  :   $this->set_error('upload_file_exceeds_limit');

+				case 1:	// UPLOAD_ERR_INI_SIZE

+					$this->set_error('upload_file_exceeds_limit');

 					break;

-				case 3  :   $this->set_error('upload_file_partial');

+				case 2: // UPLOAD_ERR_FORM_SIZE

+					$this->set_error('upload_file_exceeds_form_limit');

 					break;

-				case 4  :   $this->set_error('upload_no_file_selected');

+				case 3: // UPLOAD_ERR_PARTIAL

+				   $this->set_error('upload_file_partial');

+					break;

+				case 4: // UPLOAD_ERR_NO_FILE

+				   $this->set_error('upload_no_file_selected');

+					break;

+				case 6: // UPLOAD_ERR_NO_TMP_DIR

+					$this->set_error('upload_no_temp_directory');

+					break;

+				case 7: // UPLOAD_ERR_CANT_WRITE

+					$this->set_error('upload_unable_to_write_file');

+					break;

+				case 8: // UPLOAD_ERR_EXTENSION

+					$this->set_error('upload_stopped_by_extension');

 					break;

 				default :   $this->set_error('upload_no_file_selected');

 					break;