我的表单有问题。我希望用户能够编辑数据库中的项目。他们选择要在一个页面上编辑的项目,并通过get发送到编辑页面。GET具有他们需要编辑的项目的id。
编辑页面加载了插入到用户表单中的项目的详细信息(除了文件名),此字段为空。我正在尝试做一些逻辑检查用户是否选择了一个文件。
如果他们还没有,那么这个字段应该被忽略,因为我认为用户对已经上传的文件很满意。
如果他们选择了一个文件,那么这意味着他们希望这是新的图片。只有这样,我才能运行逻辑上传图片并将其名称插入数据库。
我通过说:来获取我的POST详细信息
$clean_pic = $_POST['pic'];
然后我说,如果它是空白的,什么都不做,否则运行上传:
if($clean_pic = ''){}
else{
它不起作用。有什么想法吗?如果它是空白的,我该怎么查?削减代码:
if (isset($_POST['add']))
{
// validate 'pic': must consist of alphanumeric characters only.
$_POST['pic'] = isset($_POST['pic']) ? $_POST['pic'] : '';
//if(preg_match('/.(jpg|gif|jpeg)$/i',$_POST['pic']))
//{
$clean_pic = $_POST['pic'];
//}
//else
//{$error++; $errmsg .= 'Invalid pic. ';}
}
if (isset($_POST['add']) && ($error==0))
{
if (!isset($_POST['pic'])) { echo"test1";}
else {echo"test222";}
/*tied this too but it didnt work (it will always display result 1):
if (!isset($_POST['pic'])) { echo"test1";}
if (isset($_POST['pic'])) {echo"test222";}*/
}
else //output error messages
{
/////////render form
?>
<form enctype="multipart/form-data" action="" method="post" id="save"><fieldset>
<table id="site-form">
<tr>
<td class="one_of_three"><label>Item Name: </label></td>
<td class="two_of_three"><input type="text" name="fileName" id="fileName" value="<?php echo"$db_name";?>"/></td>
<td><label class="errors" id="fileNameError"> </label></td>
</tr>
<tr>
<td class="one_of_three"><label>Picture: </label></td>
<td class="two_of_three"><input type="file" name="userfile[]" id="pic"/></td>
<td><label class="errors" id="picError"> </label></td>
</tr>
<tr>
<td class="one_of_three"> </td>
<td class="two_of_three"><input name="add" id="save_button" type="submit" value="Update"/> <a href="../">Cancel</a>.</td>
<td> </td>
</tr>
</table>
</fieldset></form>
<?php }?>
if (!isset($_POST['pic']))
怎么样?
不能使用"id"属性("pic")访问文件。您必须使用"name"属性("userfile")的值。您可以使用php中的$_FILES数组检查文件是否已上载。
如果(isset($_FILES)&;isset($_FILES['userfile'])&;(trim($_FILES['userfile']['name'])!=''){
//您的上传代码在这里
}
其他
{
//没有文件上传
}
您需要检查以下内容:一个是$_POST['pic']是一个数组第二个是在表单中,您必须使用enctype="multipart/form-data"属性。