I have this statement
$this->validation_helper->set_rules('myfile', 'file', 'required|validate_file|allowed_types[txt,csv,pdf]|max_size[20000]');
$result = $this->validation_helper->run();
I tried removing validate_file, but still get the die statement.
It looks like the required is not getting executed in the validation helper because the file_validation_helper is executed first.
die('ERROR: Invalid validation rule.');
It works if I remove the die statement in the file_validation_helper and make the following changes in the validation_helper.
// $posted_value = $_FILES[$key];
//$tests_to_run[] = 'validate_file';
$posted_value = $_FILES[$key]['name'];
$tests_to_run = $this->get_tests_to_run($rules);
file validation helper hitting die statement
4 years ago
4 years ago
#1
4 years ago
#2
I read three times and could not understand precisely what the nature of your problem is.
Have you tried generating an image uploader with the desktop app and then looking at the code that is generated?
Have you tried generating an image uploader with the desktop app and then looking at the code that is generated?
4 years ago
#3
Hi frocco,
I don't understand the logic in your rules you are trying to check > 'required' & 'validate_file'.
On line 9 of the validation_helper:
As the super global '$_FILES' is set, the default is to check 'validate_file' first, by setting
So there is no need to check for 'validate_file' in your rules, and 'required' will always be true, because $_FILES[$key]['name'] is set.
Here is the full method (with your 2 lines commented out):
so even if you force the rules to:
by uncommenting the two lines above and commenting the 2 original lines. The run_validation_test() method will check 'required' first from the $test_to_run() array and the 'check_for_required' method will always be true as the file name from $posted_value will never equal "".
Also, commenting out line 109 of the file_validation_helper.php
is just short circuiting '$file_check_key' as 'validate_file' is not being checked, only ['allowed_types', 'max_size', 'max_height', 'max_width', 'min_height', 'min_width', 'square'] are being checked.
So your solution is to restore the validation_helper.php & file_validation_helper.php to their original states and remove 'required|validate_file' from your rules as they are being checked by default, and adding them to the rules is only going to break your code.
Try this:
Cheers,
Si
I don't understand the logic in your rules you are trying to check > 'required' & 'validate_file'.
On line 9 of the validation_helper:
As the super global '$_FILES' is set, the default is to check 'validate_file' first, by setting
So there is no need to check for 'validate_file' in your rules, and 'required' will always be true, because $_FILES[$key]['name'] is set.
Here is the full method (with your 2 lines commented out):
so even if you force the rules to:
by uncommenting the two lines above and commenting the 2 original lines. The run_validation_test() method will check 'required' first from the $test_to_run() array and the 'check_for_required' method will always be true as the file name from $posted_value will never equal "".
Also, commenting out line 109 of the file_validation_helper.php
is just short circuiting '$file_check_key' as 'validate_file' is not being checked, only ['allowed_types', 'max_size', 'max_height', 'max_width', 'min_height', 'min_width', 'square'] are being checked.
So your solution is to restore the validation_helper.php & file_validation_helper.php to their original states and remove 'required|validate_file' from your rules as they are being checked by default, and adding them to the rules is only going to break your code.
Try this:
Cheers,
Si
4 years ago
#4
Thank you DaFa for taking the time to correct my logic.
4 years ago
#5
You're welcome Frocco,
If you could please close off this thread and the others left open, that would be appreciated.
If you could please close off this thread and the others left open, that would be appreciated.