PHP-课堂⑧

还是继续学习编辑表单内容并返回得到的数据信息

  • 表单对文件大小限制
  • 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)
  1. .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>

效果:
在这里插入图片描述
——————————————————————
在这里插入图片描述
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_41056807/article/details/83118826
今日推荐