PHP文件上传失败

时间:2013-02-20 22:49:09

标签: php forms file-upload

似乎很多人都在问这个问题而没有得到答案。 是否存在检查表单的文件上传部分是否已填写的问题? 这是因为它是一个全局变量并且总是设置?

我遇到的问题是检查文件输入ytpe是否已填写。

下面的代码显示了检查文件字段是否由用户填写的各种示例。

当它被填满时,他们都没有发现:

<?php
if (isset($_POST['add'])) 
{

//if (!isset($_POST['pic'])) { echo"pic not filled in";}else{echo"pic filled in";}

if (!isset($_POST['pic'])) { echo"pic not filled in";}
if (isset($_POST['pic']))  { echo"pic filled in";}//end of check to see if picture     has been filled in

//if (!isset($_POST['userfile[]'])) { echo"pic not filled in";}
//if (isset($_POST['userfile[]']))  { echo"pic filled in";}//end of check to see if   picture has been filled in

//$pictureName = $_REQUEST['pic'];
//if ($pictureName == ''){echo"pic is blank";}
//else{echo"pic is NOT blank";}

//if ($_POST['pic'] == ""){echo"pic is blank";}
//else {echo"pic is NOT blank";}
}

else 
{

 /////////render form
?>
<form enctype="multipart/form-data" action="" method="post" id="save"><fieldset>
<input type="text" name="fileName" id="fileName" value=""/>
<input type="file" name="userfile[]" id="pic" />
<input name="add" id="save_button" type="submit" value="Update"/>
</fieldset></form>
<?php

}
?>

2 个答案:

答案 0 :(得分:1)

因为你使用'pic'而不是'userfile'。是产生post键值的html名称,而不是id。

除非您有多输入表单

,否则它应为userfile而不是userfile[]

P.S我看到没有大量这类未解答的问题。

答案 1 :(得分:1)

我找到了我一直在寻找的答案。 非常感谢Youthis question的答案帮助了我很多:

我遇到的问题是,如果您检查表单中的字段是否设置,则一旦按下提交按钮,将始终设置该字段。

如果像我一样,你想检查是否确实输入了某些东西,那么我会说你需要做一个if(!空)检查。

如果将enctype =“multipart / form-data”添加到表单中,这将停止处理文件类型字段。

请参阅下面的示例,再次感谢You

<h1>test</h1>
    <p>check to see if a field in a form as been filled in:</p>
    <?php
    if (isset($_POST['info'])) {
      // do some stuff
      echo"info isset. it will always be set when you click the submit button</br>"; 

      if(!empty($_POST['info'])){ echo"info has been filled in</br>";}else{ echo"info is still empty</br>";}

      if(!empty($_POST['filename'])){ echo"filename has been filled in</br>";}else{ echo"filename is still empty</br>";}

    }
    else
    {
    ?>
    <form method="post">
    <input type="text" name="info" /></br>
    <input type="file" name="filename" /></br>
    <input type="submit" />
    </form>
    <?php }?>