文件上传功能—笔记补充

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

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

  

原文地址:https://www.cnblogs.com/jytblog/p/7272300.html