还是继续学习编辑表单内容并返回得到的数据信息
- 表单对文件大小限制
- 3145728数值再表单里,在文件的前面(),比服务器小
<form method="post"
enctype="multipart/form-data">
<!-- 1 表单对文件大小限制-->
<!-- 2 3145728数值在表单里,在文件的前面(<input type="file" name="pic" id="exampleInputFile" required>),比服务器小-->
<input type="hidden" name="MAX_FILE_SIZE" value="3145728">
</form>
- 配置服务器php.ini。
- unload_max_filesize改配置文件重启服务器。
- post_max_size传输post数据大小,构建表单来控制,超链接传参数get
- $_FILES显示的内容
- 文件传输失败 $_FILES[“pic”][“error”] 0
- 文件太大的问题
<?php
var_dump($_SERVER);//服务器信息
if($_SERVER['CONTENT_LENGTH']>(8*1024*1024)){
die("上传文件过大,不要超过3M");//输出到浏览器然后结束程序exit
}
?>
- 类型不匹配(通过数组下标判断,.后的格式类型)
$allowtype=array('jpg','jepg','png','gif','bmp','flv');
<!--//取扩展名,获取文件扩扩展名-->
$arr=explode(".",$_FILES["pic"]["name"]);
$ex=$arr[count($arr)-1];
- 文件名
在上次⑦中,doUserReg的基础上增加方法
reg.PHP中增加两个内容
- 处理文件上传过大问题,显示服务器
1.要在doUserReg中查看服务器信息
<?php
var_dump($_SERVER);//服务器信息
var_dump($_FILES);
move_uploaded_file($_FILES["pic"]["tmp_name"], "image/".$_FILES["pic"]["name"]);
?>
服务器相关参数:
2.文件过大判断(并判断文件类型)
if($_SERVER['CONTENT_LENGTH']>(8*1024*1024)){
die("上传文件过大,不要超过3M");//输出到浏览器然后结束程序exit
}
$allowtype=array('jpg','jpeg','png','gif','bmp','flv');
3.取扩展名,获取文件扩扩展名
$arr = explode(".",$_FILES["pic"]["name"]);//分隔,根据几个点,角标是最后一个数-1得到数组下标,扩展名可大写可小写,字符串转换成小写
//$ex=$arr[count($arr)-1];//
$ex=strtolower($arr[count($arr)-1]);//小写
//$ex=strtoupper($arr[count($arr)-1]);;大写
if(!in_array($ex,$allowtype)){
die("这不是要求的文件类型;请上传图片");
}
var_dump($_FILES);//找到源文件路径 'tmp_name' => string 'D:\wamp\tmp\phpE548.tmp' (length=23)
-
.tmp文件时临时文件由PHP定义
获取表单属性form-method为post
文件不能用原名,文件是上传的文件。起个新名-防止被后面的覆盖。命名规则:时间+随机数
$name=date("YmdHis").rand(100,999).".".$ex;//年月日时分秒.中间的“.”是扩展名的.
move_uploaded_file($_FILES["pic"]["tmp_name"], "image/".$name);
// move_uploaded_file($_FILES["pic"]["tmp_name"], "image/".$_FILES["pic"]["name"]);
这里的img修改为name而不用再引用文件
代码部分
reg.php
<!DOCTYPE html>
<html lang="zh-cn">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="description" content="">
<meta name="author" content="">
<title>视频信息管理系统</title>
</head>
<body>
<?php
上传文件太大
//var_dump($_SERVER);//服务器信息
//var_dump($_FILES);
//move_uploaded_file($_FILES["pic"]["tmp_name"], "image/".$_FILES["pic"]["name"]);
//
//?>
<form method=post action="doUserReg.php" enctype="multipart/form-data">
<div class="col-md-10">
<input type="text" name="username" class="form-control" id="exampleInputUserName" placeholder="姓名" required>
</div>
<div class="col-md-10">
<input type="password" name="password" class="form-control" id="exampleInputPassword" placeholder="密码" required>
</div>
<div class="col-md-10">
<input type="radio" name="gender" value=0 checked> 男
<input type="radio" name="gender" value=1> 女
</div>
<div class="col-md-10">
<input type="date" name="birthdate" class="form-control" id="exampleInputBirth" placeholder="生日" required>
</div>
<div class="col-md-10">
<input type="checkbox" name="hobby[]" value="运动">运动
<input type="checkbox" name="hobby[]" value="阅读">阅读
<input type="checkbox" name="hobby[]" value="音乐">音乐
<input type="checkbox" name="hobby[]" value="外语">外语
<input type="checkbox" name="hobby[]" value="舞蹈">舞蹈
</div>
<!-- pic上传文件-->
<input type="hidden" name="MAX_FILE_SIZE" value="3145728">
<div class="col-md-10">
<input type="file" name="pic" id="exampleInputFile" required>
</div>
<div class="col-md-10">
<input type="email" name="email" class="form-control" id="exampleInputEmail" placeholder="常用邮箱" required>
</div>
<div class="col-sm-offset-2 col-sm-10">
<input type="submit" class="btn btn-default" value="注册">
<input type="reset" class="btn btn-default" value="重置">
</div>
</form>
</body>
</html>
从reg.php跳到doUserReg.php
doUserReg.php文件
<html lang="en">
<head>
<meta charset="UTF-8">
<title>doUserReg</title>
</head>
<body>
<?php
/**
* Created by PhpStorm.
* User: wangs
* Date: 2018/10/12
* Time: 13:42
*/
echo $_POST["username"];
echo "<br>";
echo $_POST["password"];
echo "<br>";
echo $_POST["gender"];
echo "<br>";
echo $_POST["birthdate"];
echo "<br>";
$h= $_POST["hobby"];//起名加[],取值不加【】
$s=implode(",",$h);//数组里每一项的信息
var_dump($h);//展示选择的数组的详细信息
echo $s;
echo "<br>";
// echo $_FILES["pic"];//
echo "<br>";
echo $_POST["email"];
//table>tr*7>td*2
// 上传文件的框架jQuery
// move_uploaded_file(filename,destination)
var_dump($_SERVER);//服务器信息
var_dump($_FILES);
move_uploaded_file($_FILES["pic"]["tmp_name"], "image/".$_FILES["pic"]["name"]);
if($_SERVER['CONTENT_LENGTH']>(8*1024*1024)){
die("上传文件过大,不要超过3M");//输出到浏览器然后结束程序exit
}
$allowtype=array('jpg','jpeg','png','gif','bmp','flv');
// <!--//取扩展名,获取文件扩扩展名-->
$arr = explode(".",$_FILES["pic"]["name"]);//分隔,根据几个点,角标是最后一个数-1得到数组下标,扩展名可大写可小写,字符串转换成小写
//$ex=$arr[count($arr)-1];//
$ex=strtolower($arr[count($arr)-1]);//小写
//$ex=strtoupper($arr[count($arr)-1]);;大写
if(!in_array($ex,$allowtype)){
die("这不是要求的文件类型;请上传图片");
}
var_dump($_FILES);//找到源文件路径 'tmp_name' => string 'D:\wamp\tmp\phpE548.tmp' (length=23)
// .tmp文件时临时文件由PHP定义
// 获取表单属性form-method为post
//文件不能用原名,文件是上传的文件。起个新名-防止被后面的覆盖。
//命名规则:时间+随机数
$name=date("YmdHis").rand(100,999).".".$ex;//年月日时分秒.中间的“.”是扩展名的.
move_uploaded_file($_FILES["pic"]["tmp_name"], "image/".$name);
// move_uploaded_file($_FILES["pic"]["tmp_name"], "image/".$_FILES["pic"]["name"]);
?>
<table border="1" width="300px">
<tr>
<td>用户名</td>
<td><?php
echo $_POST["username"];?>
</td>
</tr>
<tr>
<td>密码</td>
<td>
<?php
echo $_POST["password"];?>
</td>
</tr>
<tr>
<td>性别</td>
<td>
<?php
if ($_POST["gender"]==0){
echo "男";
}else
echo "女";
//echo $_POST["gender"];
?>
</td>
</tr>
<tr>
<td>生日</td>
<td><?php
echo $_POST["birthdate"]; ?>
</td>
</tr>
<tr>
<td>爱好</td>
<td>
<?php echo $s;
?>
</td>
</tr>
<tr>
<td>头像</td>
<td>
<!-- <img src="image/--><?php //echo $_FILES["pic"]["name"];?><!--" alt="">-->
<img src="image/<?php echo $name;?>" alt="">
</td>
</tr>
<tr>
<td>邮件(E-mail)</td>
<td>
<?php
echo $_POST["email"];
?>
</td>
</tr>
</table>
</body>
</html>
效果:
——————————————————————