表单传值&文件上传

表单传值

POST方式和GET方式的区别

  • GET方式会将传递的数据以明文方式显示在地址栏中,具有可见性,POST方式没有可见性。
  • 基于第一点,GET方式的安全性比POST方式稍微低一些。
  • 传输的数据量大小上,GET方式可能存在限制,POST方式不存在。(http协议本身并没有限制GET方式传输数据的数据量大小,之所以存在限制,是因为有可能被浏览器或服务器的配置所限制)(如果传输的数据量比较大,采用POST方式比较稳妥,这个是推荐的方式)
  • 在支持的数据类型,GET方式只支持ASICC码字符类型,POST方式无限制。

PHP接收数据的方式

$_POST $_GET $_REQUEST

$_REQUEST的概念:包含$_GET、$_POST和$_COOKIE的数据

提问:当$_POST和$_GET存在同名元素时,$_REQUEST将会选择使用哪个呢?

答案:$_REQUEST选择使用哪个的值,取决于php.ini中一个名为request_order的配置项的配置!那个值在最右边代表使用哪种方式,默认是使用post

文件上传

实现思路:构建文件上传界面 -> 服务器接收(储存到系统临时目录中) -> 将文件从系统临时目录中转移到指定的目录

$file参数详解

  • name原文件名
  • type文件的格式类型
  • tmp_name文件上传到服务器存储的临时文件的全路径
  • error错误信息值
  • size原文件的大小
错误码值 说明
0 没有错误发生,文件上传成功
1 上传的文件超过了 php.ini 中 upload_max_filesize 选项限制的值
2 上传文件的大小超过了 HTML 表单中 MAX_FILE_SIZE 选项指定的值
3 文件只有部分被上传
4 没有文件被上传
6 找不到临时文件夹。PHP 4.3.10 和 PHP 5.0.3 引进
7 文件写入失败。PHP 5.1.0 引进

封装文件上传

$maxSize ){//如果上传文件的大小超过了限制的大小,则给出提示,中止继续执行
        echo '您上传的文件过大,请重新上传!';
        return false;
    }

    #构建绝对不重复的文件名
    $path = 'F:/home/class/day12/code/upload/';//文件的路径
    $name = uniqid('img_') . date('YmdHis') . mt_rand(0, 1000) . mt_rand(0, 1000) . strchr($file['name'], '.');//文件的新名字
    $wholeFileName = $path . $name;//新文件的全路径

    #转移临时文件
    if( move_uploaded_file($file['tmp_name'], $wholeFileName) ){//如果转移成功
        echo '恭喜你文件上传成功!';
        return true;
    }else{//否则转移失败
        echo '文件上传失败,请联系管理员!';
        return false;
    }
}

你可能感兴趣的:(表单传值&文件上传)