zoukankan      html  css  js  c++  java
  • 文件上传功能—笔记补充

      昨天,八月一号。基本工作:确定了用户界面、实现基本的新用户自动注册登陆、登录验证以及上传头像文件。

      在学习登录验证以及上传头像文件过程中,发现了一些问题。虽然赵老师讲的内容能勉强听懂,但是其中的逻辑和组织代码的思想还是很难理解。原因无非是两点:基础知识不熟练,没有自己成型的知识框架;练习不够,动手能力太差。所以接下来一遍要学习不熟悉的知识并慢慢建立我自己的学习php的知识框架,一边要多动手,多去练习一些小程序,并去理解其中的思想。

      添加了两个功能:

      ①登录判断:用户进入系统--->根据其手机IMEI号判断该手机是否注册过用户--->如注册过则直接登录上继续使用--->如未查询到该用户则跳转到注册页面实现注册功能;

    session_start();
    if ($_SESSION['user_id'] == '') {//如果用户ID为空的话,说明没有登陆
        header('Location: login.php'); //跳转注册页面
    }

      ②文件上传:使用表单上传文件--->错误处理--->定义允许上传的文件格式--->判断uploads目录是否存在--->不存在则创建uploads目录--->定义新的文件名--->将临时文件重命名并移动到指定的目录(uploads)下--->完成

     1 $fileError = '';
     2 $allowExtArray = array(
     3     'jpg',
     4     'png',
     5     'gif',
     6     'bmp',
     7     'jpeg',
     8 );
    10 if ($_FILES['face'] == '') {
    11     echo '没有上传';
    12 } else {
    13     if ($_FILES['face']['error'] == 0) {
    15         $ext = strtolower(pathinfo($_FILES['face']['name'],PATHINFO_EXTENSION));
    16         print_r($ext);
    17         if (!in_array($ext,$allowExtArray)) {
    18             $fileError .= '上传格式不被允许';
    20         }else {
    21             if (!is_dir('uploads')) {
    22                 mkdir('uploads');
    23             }
    24             $newFileName = date('Y-m-d H:i:s',time()).rand(0,100000);
    25             move_uploaded_file($_FILES['face']['tmp_name'],'uploads/'.$newFileName.'.'.$ext);
    26         }
    27     } else {
    28         switch ($_FILES['face']['error']) {
    29             case '1':
    30                 $fileError = '上传文件大小超过服务器允许上传的最大值';
    31                 break;
    32             case '2':
    33                 $fileError = '上传文件大小超过HTML表单中隐藏域MAX_FILE_SIZE选项指定的值';
    34                 break;
    35         }
    36         echo '发生错误:'.$fileError;
    37     }
    38 }

      新建了两个文件:

      ①profile.php:个人中心数据处理脚本。功能有:验证登录、上传头像文件、

      ②start.inc.php:用于存放数据处理文件统一调用的代码,如:

    <?php
    session_start();
    date_default_timezone_set('PRC');   /*把时间调到北京时间,php5默认为格林威治标准时间*/
    include 'config.inc.php';
    include 'db.inc.php';

      

  • 相关阅读:
    [LeetCode] Coin Change
    [LeetCode] House Robber
    [LeetCode] Lowest Common Ancestor of a Binary Search Tree
    [LeetCode] Remove Element
    [LeetCode] Merge Two Sorted Lists
    [LeetCode] Duplicate Emails
    svn propset svn:ignore
    WebLogic11g-负载分发
    WebLogic11g-集群相关概念
    WebLogic11g-半小时让你的domain集群化
  • 原文地址:https://www.cnblogs.com/jytblog/p/7272300.html
Copyright © 2011-2022 走看看