目录
表单交互
其相关的方式有:
$_GET
以post方式提交的数据,就需要$_POST方式取得数据;post方式—后台传输数据
$_POST
以get方式提交的数据,就需要$_GET方式取得数据;get方式—地址栏传输数据
$_REQUEST
$_REQUEST可以接收到get,post方式提交的数据
例子:
html表单页面
后端php接收数据的代码:
文件上传
文件上传$_FILES
<form action=”file.php” method=”post” enctype=”multipart/form-data”>
<input type=”file” name=”pic” accept=”image/gif,image/jpg,image/png”/>
</form>
enctype=”multipart/form-data”是设置表单的文件上传是二进制上传,不设置的话文件无法上传。
表单页面:
代码:
打印结果:--二维数组
Name:上传的文件名
Type:上传的文件类型
Tmp_name:上传后临时文件的存储位置
Error:上传失败的信息
Size:上传文件的大小
上传文件错误代码
0:没有错误发生,上传成功
1:上传文件超过了php.ini中的upload_max_filesiz设置的文件大小
2:上传文件超过了表单Html的上传限制、
3:文件只有部分被上传
4:没有文件被上传
6:找不到临时文件
7:文件写入失败
查看临时文件
临时文件再脚本执行完毕之后就自动消失了
通过修改php.ini中的upload_tmp_dir可以修改该临时文件的存储位置;
判断文件是否是通过http post上传的
描述:判断文件是否通过HTTP POST上传的
语法:bool is_uploaded_file(string $filename);
参数:$filename是上传临时文件的文件名
注意:表单提交方式必须为post
表单:
<input type=”hidden” name=”” value=””/>
这是表单的隐藏域,通过设置隐藏域可以再代码中判断是否由表单提交的数据;
后台处理文件的代码:
将上传的文件移动到新的位置
语法:bool move_uploaded_file(string $filename,string $destination)
参数:
$filename 临时文件
$destination 目标文件,一般将目标文件复制到网站空间中
文件上传完整代码
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>文件上传</title>
</head>
<body>
<form action="./文件上传.php" method="post" enctype="multipart/form-data">
<input type="file" name="pic">
<!-- 用于后台代码判断是否是这个页面提交的 -->
<input type="hidden" name="ck" value="upload">
<input type="submit" value="提交文件">
</form>
</body>
</html>
<?php
header("content-type:text/html;charset=utf-8");
//判断是否由表单提交的
if (isset($_POST['ck']) && $_POST['ck'] == 'upload') {
//判断是否由HTTP POST方式上传的文件
if (is_uploaded_file($_FILES['pic']['tmp_name'])) {
//移动临时文件到指定目录
$srcFile = $_FILES['pic']['tmp_name'];
$desFile = './sc_' . $_FILES['pic']['name'];
if (move_uploaded_file($srcFile, $desFile)) {
echo '上传成功';
}else{
echo '上传失败';
}
}else{
echo '非法访问';
}
}else{
echo '非法文件';
}
?>