How to check if the file input field is empty?
-
30-05-2021 - |
Question
I am having a hard time using $_FILES
I want to check if file upload field is empty or not then apply a condition such that if file upload is empty then the script doesn't try uploading the file. How do I enforce this?
Solution
if($_FILES["file"]["error"] != 0) {
//stands for any kind of errors happen during the uploading
}
also there is
if($_FILES["file"]["error"] == 4) {
//means there is no file uploaded
}
OTHER TIPS
This should work
if ( ! empty($_FILES)) {...}
The other answers didn't work for me. So I post my solution:
if($_FILES['theFile']['name']=='')
{
//No file selected
}
Here's what worked for me:
if ($_FILES['theFile']['tmp_name']!='') {
// do this, upload file
} // if no file selected to upload, file isn't uploaded.
You can use the UPLOAD_ERR_NO_FILE value:
function isset_file($file) {
return (isset($file) && $file['error'] != UPLOAD_ERR_NO_FILE);
}
if(isset_file($_FILES['input_name'])) {
// It's not empty
}
Updated: Since sending $_FILES['input_name'] may throw a Notice
function isset_file($name) {
return (isset($_FILES[$name]) && $_FILES[$name]['error'] != UPLOAD_ERR_NO_FILE);
}
if(isset_file('input_name')) {
// It's not empty
}
this question is duplicate but your answer is is_uploade_file() function.
if(!empty($_FILES['myFileField'])) {
// file field is not empty..
} else {
// no file uploaded..
}
To check if an input of type file is empty you will have to take any of $_FILES
arrays and check it against an empty array. All that I have seen above is check against an empty string which will not work.
Example:
if($_FILES["your_field_name"]["size"] == [' '])
{
Perform your validation here•
}
I hope this helps.