42

在我的表单中,我有 3 个用于文件上传的输入字段:

<input type=file name="cover_image">
<input type=file name="image1">
<input type=file name="image2">

如何检查是否cover_image为空 - 没有文件上传?

4

16 回答 16

83

您可以使用数组size上的字段进行检查,如下所示:$_FILES

if ($_FILES['cover_image']['size'] == 0 && $_FILES['cover_image']['error'] == 0)
{
    // cover_image is empty (and not an error)
}

(我也在error这里检查,因为它可能是0如果出了问题。我不会name用于这个检查,因为它可以被覆盖)

于 2013-01-22T12:29:12.083 回答
26

方法一

if($_FILES['cover_image']['name'] == "") {
// No file was selected for upload, your (re)action goes here
}

方法二

if($_FILES['cover_image']['size'] == 0) {
// No file was selected for upload, your (re)action goes here
}
于 2013-01-22T12:29:10.837 回答
12

您可以通过执行以下操作检查是否有值,以及图像是否有效:

if(empty($_FILES['cover_image']['tmp_name']) || !is_uploaded_file($_FILES['cover_image']['tmp_name']))
{
   // Handle no image here...
}
于 2013-01-22T12:30:54.860 回答
7
if (empty($_FILES['cover_image']['name']))
于 2013-01-22T12:29:49.527 回答
5

简单的 :

if($_FILES['cover_image']['error'] > 0)
    // cover_image is empty
于 2015-06-26T00:10:35.230 回答
3

表格发布后检查以下内容

$_FILES["cover_image"]["size"]==0
于 2013-01-22T12:29:14.507 回答
3
    if (!$_FILES['image']['size'][0] == 0){ //}
于 2020-08-28T08:48:29.523 回答
2
 if( ($_POST) && (!empty($_POST['cover_image'])) )    //verifies  if post exists and cover_image is not empty
    {
    //execute whatever code you want
    }
于 2013-01-22T12:32:53.153 回答
2

$_FILES 是一个关联的 POST 方法数组,如果您想检查有关 $_FILES 的任何内容,您必须考虑索引...我尝试了很多建议的选项,唯一对我有用的方法是当我包含我的验证方法中的索引。

$_FILES['Your_File']['name'][0];

所以再见了:

 if(empty($_FILES['Your_File']['name'][0])){
    print('this thing is empty');
 }else{
    print('Something, something, something');
 }

没有什么能比得上好的旧实验和大量阅读了。

于 2021-06-17T02:50:50.190 回答
1
if($_FILES['img_name']['name']!=""){
   echo "File Present";
}else{
  echo "Empty file";
}
于 2015-08-19T06:49:18.497 回答
1
if ($_FILES['cover_image']['size'] == 0 && $_FILES['cover_image']['error'] == 0)
{ 
      // Code comes here
}

这东西对我有用…………

于 2016-03-24T11:18:15.183 回答
1
if(!empty($_FILES)) { // code if not uploaded } else { // code if uploaded }
于 2020-08-10T21:53:40.557 回答
1
<input type="file" class="custom-file-input" id="imagefile" name="imagefile[]"  multiple lang="en">
<input type="hidden" name="hidden_imagefile[]" value="<?=$row[2]; ?>" class="form-control border-input" >

    if($_FILES['imagefile']['name'] == '')
        {
          $img = $_POST['hidden_imagefile'];
        }
        else{
          $img = '';
          $uploadFolder = 'uploads/gallery/';
          foreach ($_FILES['imagefile']['tmp_name'] as $key => $image) {
            $imageTmpName = time() .$_FILES['imagefile']['tmp_name'][$key];
            $imageName = time() .$_FILES['imagefile']['name'][$key];
            $img .= $imageName.',';
            $result = move_uploaded_file($imageTmpName, $uploadFolder.$img);
          }
          
        }
于 2020-12-25T09:40:47.603 回答
1

这将起作用

if ($_FILES['cover_image']['size'] == 0 && $_FILES['cover_image']['error'] == 0)

// 检查文件是否被选中并且没有错误

{

// 文件没有被选中,也不是错误

}

于 2021-04-24T04:19:01.437 回答
1
if ($_FILES['cover_image']['error'] == 4){
    // the user did not choose any file
}else{
   // the user chose a file to be uploaded
}
于 2022-01-05T05:54:02.313 回答
0

更新: 使用此方法:

首先检查 $_FILES 中是否存在“cover_image”键,然后检查其他文件错误

if (in_array('cover_image', array_keys($_FILES) && $_FILES['cover_image']['error'] == 0) {
  // TODO: write your code
} else {
  // return error
}
于 2022-01-12T16:42:05.570 回答