如题,我是想通过表单的file域,获取本地图片文件,格式限制在.jpg .gif .jpeg上,并且大小不能超过300K,经过检验后,调用会话里的user_name字段和id字段,用id作为文件夹名,user_name作为文件名,转存到站点photo文件夹下,并且在file域下面,还添加了一个textarea,用来填写照片相关的介绍,但是,现在就是根本不出提示错误信息,并且数据库内也没写入。
数据库的字段信息
字段名 类型
id int(10) 自动编号
tpmc varchar(30) 图片名称
ph_file varchar(30) 图片路径
auther varchar(20) 作品作者 
art_file varchar(20) 论文路径
article mediumtext 作品论文
up_time date 上传日期
prize tinyint(3) 奖项 0为未获奖,1为金奖2为银奖3为优胜奖,4为优秀奖

解决方案 »

  1.   

    PHP代码<?php session_start();
     if ( !isset ( $_SESSION ) ) session_start();
     ?>
     <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>注册成功</title>
    <link href="css/style.css" rel="stylesheet" type="text/css" />
    <link href="css/reg_suc.css" rel="stylesheet" type="text/css" /></head>
    <body>
    <?php
     include ("sys_conf.inc.php"); 
     //if($_POST["btnUpload"]=="提交")
     //   {
      if ( isset ( $_POST["btnUpload"] ) ) 
      {
       $path = pathinfo($_FILES["filePhoto"]["name"]);
       $ext = $path["extension"];/*取出后缀*/
       $profix=".jpg",".gif",".jpeg");
      
      if(!in_array(strtolower($ext),$profix)){
       echo "<script>alert('文件格式不对');history.go(-1);</script>";
       exit();
       }
       if($_FILES["filePhoto"]["size"]>300000){
       echo "<script>alert('文件上传错误,大小应小于300KB,请重新上传');history.go(-1);</script>";
       exit();
       }
         
        $uploaddir = "/photos/".$_SESSION["id"];

      if ( !file_exists ( $uploaddir ) ) mkdir ($uploaddir,0777 );
      
      $uploadfile = $uploaddir .$_SESSION["user_name"] . "." . $ext;
      if ( move_uploaded_file($_FILES["filePhoto"]["tmp_name"], $uploadfile ) ) {
       $id=$_SESSION["id"];
       $tpmc=$_SESSION["user_name"] . "." . $ext;
       $query="SELECT user_realname FROM tb_user WHERE user_name='".$user_name."'";
     $result=@mysql_query($query,$connection) or die("数据请求失败!");
       $prize=0;
       $auther=$result;
       $article=$_POST["article"];
       $uploadtxt=$uploaddir .$_SESSION["user_name"] .".txt";
       $up_time=date();
       if(!(file_put_contents($uploadtxt,$article))){
      echo "<script>alert('论文写入失败');history.go(-1);</script>";
       exit();
       }
     else if(mysql_query("insert into tb_update(id,tpmc,ph_file,auther,art_file,article,up_time,prize) values('$id','$tpmc','$uploadfile','$auther','$uploadtxt','$article','$up_time','$prize')",$connection))
     {$sql = sprintf ( "UPDATE tb_user SET user_up_status=1 WHERE user_name='%s'", $_SESSION["user_name"]);
    $rs = mysql_query ( $sql ) or die ( mysql_error() );
     echo "<script>alert('文件上传成功!照片信息已保存到数据库中');window.location.href='index.php';</script>";

          } 
      else {
      echo "<script>alert('数据请求失败!');history.go(-1);</script>";  }
      }
     }
    ?>
    </body>
    </html>
      

  2.   

    代码太长了,你一个一个的 echo 变量看看就知了。插入前 把 sql echo出来,到 phpmyadmin 里看看是否是 sql 问题。要学会排错。