add.php<form name="form1" method="post" action="check.php" >
  <tr>
        <td width="80" height="25" bgcolor="#FFFFFF"><div align="center">公告主题:</div></td>
        <td width="667" bgcolor="#FFFFFF"><div align="left"><input type="text" name="title" size="50" class="inputcss"></div></td>
      </tr>
  <tr>
    <td height="25" bgcolor="#FFFFFF"><div align="center">图片:</div></td>
    <td bgcolor="#FFFFFF"><div align="left">
          <input type="file" name="upfile" class="inputcss" size="30" />
      <input type="hidden" name="MAX_FILE_SIZE" value="2000000">
      (图片不宜大于2M)
          </div></td>
    </tr>
      <tr>
        <td height="125" bgcolor="#FFFFFF"><div align="center">公告内容:</div></td>
        <td height="125" bgcolor="#FFFFFF"><div align="left"><textarea name="content" rows="8" cols="70"></textarea>
        </div></td>
      </tr>
      <tr>
        <td height="25" colspan="2" bgcolor="#FFFFFF"><div align="center"><input type="submit" value="添加" class="buttoncss">&nbsp;&nbsp;<input type="reset" value="重写" class="buttoncss"></div></td>
      </tr>
  </form>check.php<?php
 include("connect.php");
 $title=$_POST[title];
 $content=$_POST[content];
 $upfile =$_POST[upfile];
 
 function getname($exname){
   $dir = "upimages/";
   $i=1;
   if(!is_dir($dir)){
      mkdir($dir,0777);
   }
   
   while(true){
       if(!is_file($dir.$i.".".$exname)){
       $name=$i.".".$exname;
       break;
   }
   $i++;
 }   return $dir.$name;
}
$uploadfile ="";$exname=strtolower(substr($_FILES['upfile']['name'],(strrpos($_FILES['upfile']['name'],'.')+1)));
$uploadfile = getname($exname);
move_uploaded_file($_FILES['upfile']['tmp_name'], $uploadfile);
if(trim($_FILES['upfile']['name']!=""))
 { 
  $uploadfile="admin/".$uploadfile;
}
else
 {
  $uploadfile="";
 }
 $time=date("Y-m-j");
 $sql = mysql_query("insert into news (biaoti,neirong,ctime,pic) values ('$title','$content','$time','$uploadfile')");
 if($sql){
echo "<script>alert('添加成功!');window.location.href='right.html';</script>";
        }

?>

解决方案 »

  1.   

    问题出在字段pic,数据表里的pic字段一直都是空值,不管我如何怎么修改都是空的。我设置的pic是varchar类型,没啥特殊的。
      

  2.   

    意思就是插入的时候能够提示成功,但是pic字段下的记录是空的。是不是在两者代码里有错误?
      

  3.   

    说明执行了 
    else
     {
      $uploadfile="";
     }
      

  4.   

    if($uploadfile!="")
     { 
      $uploadfile="admin/".$uploadfile;
    }
    else
     {
      $uploadfile="";
     }
    是不是这样的?
      

  5.   

    enctype="multipart/form-data" 表单要加多这个
      

  6.   

    $_FILES['upfile']['name'] 它没有取到值
      

  7.   

    <?php
    // In PHP versions earlier than 4.1.0, $HTTP_POST_FILES should be used instead
    // of $_FILES.$uploaddir = '/var/www/uploads/';
    $uploadfile = $uploaddir . basename($_FILES['userfile']['name']);echo '<pre>';
    if (move_uploaded_file($_FILES['userfile']['tmp_name'], $uploadfile)) {
        echo "File is valid, and was successfully uploaded.\n";
    } else {
        echo "Possible file upload attack!\n";
    }echo 'Here is some more debugging info:';
    print_r($_FILES);print "</pre>";?> 
    看下手册上的代码,对照一下。
      

  8.   

    有一个判断错误的选项,我估计你是不是少了 enctype="multipart/form-data"