我就是这样一个table+表单来修改菜单信息和上传图片,明明已经选好图片了,但是一按更新总是弹出“没有选择文件”,请问各路大神,问题出在哪里呢?<table align=center  border=0 cellspacing="0">
<form enctype="multipart/form-data" action="admin_update.php?menuid=<?php echo $menuid; ?>" method="post" name="editform" onsubmit="return checkAdd()">
<tr><td>菜名:</td><td><input type='text' name='name' value="<?php echo $menu['menuname']; ?>" ></td></tr>
<tr><td>饭堂:</td><td><select name="canteen" style="width:155px ;height:22px;">
         <option selected="selected" value="<?php echo $menu['canteen'];?>"><?php echo $menu['canteen']; ?></option>
<option value="一饭">一饭&nbsp;</option>
<option value="二饭">二饭&nbsp;</option>
<option value="三饭">三饭&nbsp;</option>
</select></td></tr>
<tr><td>类型:</td><td><select name="type" style="width:155px ;height:22px;">
         <option selected="selected" value="<?php echo $menu['menutype'];?>"><?php echo $menu['menutype']; ?></option>
<option value="饭类">饭类</option>
<option value="粉面类">粉面类</option>
<option value="粥类">粥类</option>
</select></td></tr>
<tr><td>单价:</td><td><input type='text' name='price' value="<?php echo $menu['menuprice']; ?>"></td></tr>
<tr><td>图片:</td><td><INPUT TYPE="hidden" name="MAX_FILE_SIZE" value=5000000><input type='file' name='file' ></td></tr>

<tr height='80px'><td colspan=2 align=center><input type='submit' name='submit' value='更新'>&nbsp;&nbsp;<a href="adminmenu.php"><input type="button" value="取消"/></a></td></tr>
</table><?php
session_start();
echo "<meta http-equiv='Content-Type' content='text/html; charset=utf-8'>";
require("connect.php"); 

$menuid = $_GET['menuid'];
$menuQuery = mysql_query("select * from menu where menuid='$menuid'");
$menu = mysql_fetch_assoc($menuQuery);

if($_POST['submit']!=null){
$menuname = $_POST['name'];
$canteen = $_POST['canteen'];
$menutype = $_POST['type'];
$menuprice=$_POST['price'];$file_format = array('image/jpeg','image/pjpeg','image/png','image/x-png','image/gif');if (($_FILES['file']['tmp_name']=="")||($_FILES['file']['tmp_name']=="none")){
echo "<script>alert('没有选择图片')</script>";
}
else{
if (is_array($file_format)){
if (!in_array($_FILES['file']['type'],$file_format)){
echo "<script>alert('请上传jpg/gif/png格式的图片');history.back();</script>";
exit;
}
else{
$UploadPath = "pic/menu/";
//echo $UploadPath;
$dest_filename=$UploadPath.iconv("utf-8","gbk",$_FILES["file"]["name"]);
if (file_exists($dest_filename)){
echo "<script>alert('文件",$_FILES["file"]["name"],"已经存在')</script>";
}
else{
if (is_uploaded_file($_FILES['file']['tmp_name'])){
if (!move_uploaded_file($_FILES['file']['tmp_name'],$dest_filename)){
echo "<script>alert('上传文件",$_FILES["file"]["name"],"失败')</script>";
exit;
}
else
echo "<script>alert('上传文件",$_FILES["file"]["name"],"成功!')</script>";
$pic=$_FILES["file"]["name"];
$updateQuery = mysql_query("update menu set menuname='$menuname', canteen='$canteen', menutype='$menutype' , menuprice='$menuprice',menupic='$pic' where menuid='$menuid'");
echo "<script>alert('修改成功');window.location.href='adminmenu.php'</script>"; 
}
}
}
}
}
}

解决方案 »

  1.   

    print_r($_FILES);  //看php接收到了没
      

  2.   

    print_r($_FILES);是什么值,贴出来看看。
    你自己可以调试一下看进入哪一步了
      

  3.   

    不知道为什么它接收不了$_FILES['file']['tmp_name']和$_FILES['file']['type'],我只好把这个判断的语句删了
      

  4.   

    问题似乎在
    if (($_FILES['file']['tmp_name']=="")||($_FILES['file']['tmp_name']=="none"))
    这个地方