我遇到的问题是检查文件输入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
}
?>
答案 0 :(得分:1)
因为你使用'pic'而不是'userfile'。是产生post键值的html名称,而不是id。
除非您有多输入表单
,否则它应为userfile
而不是userfile[]
P.S我看到没有大量这类未解答的问题。
答案 1 :(得分:1)
我找到了我一直在寻找的答案。 非常感谢You对this 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 }?>