2013-02-20 103 views
0

似乎有很多人问这个问题,没有得到答案。 在检查表单的文件上传部分是否已被填充时是否存在问题? 是因为它是一个全局变量而且是全部设置的?PHP文件上传isset失败

即时通讯存在的问题是检查文件输入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

我以前有这个同样的问题。这是因为我正在检查ID属性而不是NAME属性。见大佬的答案。 – 2013-03-06 09:07:41

回答

1

我发现答案一直在寻找最后。 一个巨大的感谢You卫生组织答案this question对我帮助很大:

我是有这个问题,如果你检查,看看是否在表单字段isset它总是被设置一次提交按钮被按下。

如果像我一样,你想检查是否有什么事情已经真正进入到领域,那么我会说你需要做一个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 }?> 
1

因为你使用“知情同意”而不是“userfile的”。是发布关键字值的html名称,而不是id。

应该userfile没有userfile[],除非你有一个多输入表格

P.S我没有看到大量的这种类型的悬而未决的问题。

+0

我见过一些这样的....我试了几个例子,但coulnt得到它的工作。例如:'code'if(isset($ _POST ['userfile'])){echo“pic filled in”;}'code' – 2013-02-20 23:14:59

+0

没有理由说上述不行,请举个完整的例子 – 2013-02-20 23:16:57