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'];
$ext = strrchr( $name, "." ); // 5 随机生成文件名
$newName = time().rand(10000, 99999).$ext; // 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 判断是否插入成功,并进行跳转操作

//封装执行数据库的方法
function my_exec( $sql ) {
// 1. 连接数据库
$link = @ mysqli_connect( '127.0.0.1', 'root', 'root', 'stumanage', '3306' ); if ( !$link ) {
echo "数据库连接失败";
return false; //2 . 执行 sql, 执行的是 查询, 成功:结果集, 失败:false
$res = mysqli_query( $link, $sql ); if ( !$res ) { // 失败了
echo mysqli_error( $link ); // 打印错误信息 mysqli_close( $link );
return false;
}
} //执行数据库语句
if ( my_exec( $sql ) ) {
echo "添加成功";
// 跳转到 学生列表php文件
header('location:studentList.php');
}
else {
echo "添加失败";
}

 

2.6  更新数据库

//获得数据的唯一标识
$id = $_GET['id']; //准备查询语句
$sql = "select * from stu where id = $id"; // 准备 sql 语句 //执行查询语句
$res = mysqli_query( $link, $sql );

PHP方法注解:

mysqli_connect( '127.0.0.1', 'root', 'root', 'stumanage', '3306' ); PHP链接指定数据库的方法.

mysqli_close( $link ); 数据库使用完毕后,关闭数据库链接的方法,不能省略.

mysqli_query( $link, $sql ); 执行 sql, 执行的是查询, 成功输出结果集, 失败返回false.

mysqli_error( $link ); php打印错误信息的方法

header("location: studentList.php"); php跳转到指php文件的方法.

大前端涉猎之前后端交互总结2:使用PHP进行表单数据上传与更新的更多相关文章

  1. 大前端涉猎之前后端交互总结3:使用PHP进行表单数据删除与查询

    1 首先:获取用户 id,根据id 删除指定的数据. 在链接完数据库之后,通过$_GET 超全局变量,获取删除的书内容 $id = $_GET['id']; 2 准备delete SQL语句: $sq ...

  2. 大前端涉猎之前后端交互总结1: 软件架构与PHP搭建

    1 软件架构与PHP搭建 1.1 HTTP服务器(web服务器) 即( web服务器 )网站服务器,主要提供文档(文本.图片.视频.音频)web浏览服务,一般安装Apache.Nginx服务器软件. ...

  3. 2、前端--初见前后端交互、CSS简介、基本选择器、组合选择器、属性选择器、分组与嵌套、伪类选择器

    今日内容概要 初窥后端框架 css简介 css选择器 今日内容详细 初次体验前后端交互 # 代码无需掌握 只看效果即可 """后端框架:可以简单的理解为别人写好的一个非常 ...

  4. 前端笔记之微信小程序(三)GET请求案例&文件上传和相册API&配置https

    一.信息流小程序-GET请求案例 1.1服务端接口开发 一定要养成接口的意识,前端单打独斗出不来任何效果,必须有接口配合,写一个带有分页.关键词查询的接口: 分页接口:http://127.0.0.1 ...

  5. JavaScript数据类型BigInt实践之id数值太大,导致前后端交互异常

    项目开发中前后端数据交互常会使用id作为主键索引,通常id数值都不大,使用number类型就可以表示处理,但对于一些分布式id或其他情况,id数值太大且超过了JS的最大处理数(Math.pow(2,  ...

  6. 学习web前端技术的笔记,仅供自己查阅备忘,图片上传预览

    <!DOCTYPE html><html><head lang="en"> <meta charset="UTF-8" ...

  7. 我为NET狂-----大前端专帖

    http://dnt.dkill.net/Article/Detail/321 本来前端的东西是不想开个专贴的,这样网友容易产生依赖,前端的东西看看书,平时仿照几个网站,遇到问题再调调增加点经验,基本 ...

  8. 爱上MVC系列~前端验证与后端数据有效性验证

    回到目录 有一句话,在10年前就是真理,到现在也一直都是,“前端验证可以没有,但后端验证必须要有”,这句话相信大家都没有意见吧,前端验证一般指通过JS方式实现的,友好的,个性的验证方式,而后端验证是指 ...

  9. java大文件上传解决方案

    最近遇见一个需要上传百兆大文件的需求,调研了七牛和腾讯云的切片分段上传功能,因此在此整理前端大文件上传相关功能的实现. 在某些业务中,大文件上传是一个比较重要的交互场景,如上传入库比较大的Excel表 ...

随机推荐

  1. JavaScript 数组some()和filter()

      some方法 array1.some(callbackfn[, thisArg]) 对数组array1中的每个元素调用回调函数callbackfn,当回调函数返回true或者遍历完所有数组后,so ...

  2. 学生党如何拿到阿里技术offer: 《2016阿里巴巴校招内推offer之Java研发工程师(成功)》

    摘要: 这篇文章字字珠玑,这位面试的学长并非计算机相关专业,但是其技术功底足以使很多计算机专业的学生汗颜,这篇文章值得我们仔细品读,其逻辑条理清晰,问题把握透彻,语言表达精炼,为我们提供了宝贵的学习经 ...

  3. Vue源码学习(零):内部原理解析

    本篇文章是在阅读<剖析 Vue.js 内部运行机制>小册子后总结所得,想要了解详细内容,请参考原文:https://juejin.im/book/5a36661851882538e2259 ...

  4. Julia - 三元运算符

    三元运算符的格式: a ? b : c a 是条件表达式,如果条件 a 为真,就执行 b:如果条件 a 为假,就执行 c 二选一 julia> println(1 < 2 ? " ...

  5. Android复杂自定义Listview实现

    在Android中实现Listview对新人来说比较难以理解,本人看了若干文章后觉得可以使用以下思路来让新人更好理解(同时也做好记录,免得自己以后忘记). 可参考博客:http://cinderell ...

  6. 前端学习---JavaScript

    JavaScript基本知识 JavaScript是一门独立的语言,像我们学习php,python等需要安装apache,python3.6,那我们学习JavaScript只需要我们电脑有一个浏览器即 ...

  7. Python 小知识点(6)--静态方法、类方法、属性方法

    (1)静态方法-->-@staticmethod装饰类中方法 只是名义上归类管理, 实际上在静态方法里访问不了类或实例中的任何属性 class Dog(object): def __init__ ...

  8. leetcode451

    public class Solution { public string FrequencySort(string s) { var dic = new Dictionary<char, in ...

  9. **不使用tuple函数,将列表转为元组

    使用动态参数: l = [1, 1, 3, 4, 5] def f(*args): return args x = f(*l) print(x)

  10. 安卓开发之不通过USB数据线调试的方法

    搞安卓开发的程序员肯定都需要用又笨又碍手碍脚的USB数据线连接安卓设备进行调试,是不是觉得非常麻烦? 然后为了避免这种麻烦,我们一般通过网络上的各种方法,比如AS的插件ADB WIFI,不知道大家是如 ...