PHP--规范化的文件上传
2017-07-16 20:37
190 查看
<form action="" method="post" enctype="multipart/form-data"> <input type="hidden" name="MAX_FILE_SIZE" value="300000"><!--表单隐藏域:MAX_FILE_SIZE,意思是接收文件的最大尺寸--> <input type="file" name="up_picture"> <input type="submit" name="submit" value="提交"> </form> <?php if (!empty($_FILES['up_picture'])) {//判断上传内容是否为空 if ($_FILES['up_picture']['error'] > 0) {//判断上传错误信息 echo "上传错误:"; switch ($_FILES['up_picture']['error']) { case 1: echo "上传文件大小超出配置文件规定值"; break; case 2: echo "上传文件大小超出表单中的约定值"; break; case 3: echo "上传文件不全"; break; case 4: echo "没有上传文件"; break; } } else { list($maintype, $subtype) = explode("/", $_FILES['up_picture']['type']); if ($maintype != "image" || $subtype != "png") { echo "上传文件格式不正确"; } else { if (!is_dir("./upfile")) {//判断指定目录是否存在 mkdir("./upfile");//创建目录 } $path = './upfile/' . time() . strtolower(strstr($_FILES['up_picture']['name'], "."));//定义上传文件名和存储位置 if (is_uploaded_file($_FILES['up_picture']['tmp_name'])) {//判断文件上传是否为HTTP POST上传 if (!move_uploaded_file($_FILES['up_picture']['tmp_name'],$path)) {//执行上传操作 echo "上传失败"; } else { echo "文件:" . time() . strtolower(strstr($_FILES['up_picture']['name'], ".")) . "上传成功,大小为:" . $_FILES['up_picture']['size'] . "字节"; } } else { echo "上传文件:".$_FILES['up_picture']['name']."不合法"; } } } }注:
$_FILES变量存储的是上传文件的相关信息,这些信息对于上传功能有很大的作用。该变量是一个二维数组。
保存的信息如下表
元素名称 | 说明 |
---|---|
$_FILES[filename][name] | 存储了上传文件的文件名,如test.txt,tu.jpg |
$_FILES[filename][size] | 存储了文件大小,单位为字节 |
$_FILES[filename][tmp_name] | 文件上传时,首先在临时目录中被保存成一个临时文件。该变量为临时文件名。 |
$_FILES[filenam][type] | 上传文件的类型。 |
$_FILES[filename][error] | 存储了上传文件的结果。如果返回0,则说明文件上传成功。 |
UPLOAD_ERR_INI_SIZE 值:1; 上传的文件超过了 PHP.ini 中 upload_max_filesize选项限制的值
UPLOAD_ERR_FORM_SIZE 值:2;上传文件的大小超过了 HTML 表单中 MAX_FILE_SIZE 选项指定的值
UPLOAD_ERR_PARTIAL 值:3; 文件只有部分被上传
UPLOAD_ERR_NO_FILE 值:4;没有文件被上传, 值:5; 上传文件大小为0
相关文章推荐
- PHP实现规范化文件上传
- PHP--规范化的文件上传
- PHP--规范化的文件上传
- php实现文件上传到指定文件夹,文件路径或名字存入数据库,如何实现啊
- PHP搭建大文件切割分块上传功能
- PHP任意文件上传漏洞CVE-2015-2348浅析
- php文件上传短记
- 修改配置真正解决php文件上传大小限制问题(nginx+php)
- php文件上传
- php一个比较基础的文件上传的代码
- PHP上传文件时,文件过大$_FILES为空
- 【php】挖掘php上传文件类型原理实现
- PHP漏洞全解(九)-文件上传漏洞
- IIS+PHP,为什么上传文件的时候,$_FILES['tmp_name'] 为空
- PHP使用原生函数实现文件上传及下载
- php 上传文件失败$_FILES tmp_name 为空
- PHP 文件上传
- 修改php文件上传的大小限制upload_max_filesize
- 配置php.ini实现PHP文件上传功能
- 获取服务器支持文件最大上传大小 (PHP代码函数)