前后端交互总结2:使用PHP进行表单数据上传

1:使用PHP进行表单上传

1.1 form表单的数据收集

HTML页面:

 

代码解释:核心模块是form的属性:

--提交方式 :  method="post"
--指定 name 属性:  例如 name="username"
-- 给 form 指定文件上传格式:  enctype="multipart/form-data"
 
 
2点击提交按钮后,后台进行的操作

2.1 通过$_FILES 超全局变量,获取图像数据:

  二维数组,可以获取表单上传的提交数据内容.

  Array
  (
      [photo] => Array
          (
              [name] => picture.jpg   提交的文件名
              [type] => image/jpeg     文件类型
              [tmp_name] => C:\Users\Jepson\AppData\Local\Temp\phpBF97.tmp  临时存储的路径
              [error] => 0    错误码, 如果是 0 表示没有错误
              [size] => 17552  文件大小, 单位 字节 17kb 左右
          )
  )

 

 

2.2 PHP的图像转存:

  // 1 获取文件数组
  $file = $_FILES['photo'];

  if ( $file['error'] === 0 ) { // 2 需要转存文件

    $ftmp = $file['tmp_name']; // 3 获取临时文件路径

    // 4 截取后缀名
    $name = $file['name']; // 源文件名  1.gif
    $ext = strrchr( $name, "." ); // .gif

    // 5 随机生成文件名
    $newName = time().rand(10000, 99999).$ext;

    // move_uploaded_file("临时文件路径", "存储文件路径")
    // 6 转存文件
    move_uploaded_file( $ftmp, "./upload/".$newName );
}

 

2.3 通过$_POST超全局变量获取post数据,保存在全局变量里.

 $username = $_POST['username'];
  $nickname = $_POST['nickname'];
  $age = $_POST['age'];
  $tel = $_POST['tel'];
  $sex = $_POST['sex'];
  $class = $_POST['class'];
  $photo = ""; // 图片地址

 

2.4 准备SQL语句,进行数据库写入操作

  插入数据

 $sql = "insert into stu (name, nickname, age, tel, sex, photo, classid)
          values ('$username', '$nickname', $age, '$tel', '$sex', '$photo', $class)";

2.5 判断是否插入成功,并进行跳转操作

if ( my_exec( $sql ) ) {
    echo "添加成功";
    // 跳转到 学生列表php文件
    header('location:studentList.php');
  }
  else {
    echo "添加失败";
  }

注: my_exec( $sql )--PHP执行SQL语句.

猜你喜欢

转载自www.cnblogs.com/autoXingJY/p/9139427.html
今日推荐