PHP学习系列之文件上传
来源:互联网 发布:人工智能豆瓣评分 编辑:程序博客网 时间:2024/06/05 17:34
<?php/** * * @authors Benjamin * @date 2013-11-10 19:51:10 * PHP学习系列之文件上传 * * 一、上传配置 * upload_max_filesize = 2M 上传的最大文件大小 * file_uploads = on 开启文件上传 * max_execution_time = 30 PHP脚本在注册一个致命错误之后运行执行的最长时间 * memory_limit = 128M 脚本独占的最大内存为128MB * upload_tmp_dir = "g:/wamp/tmp" 上传文件存放路径 * post_max_size = 8M post方式接收的信息的最大值 * * 二、$_FILES[] * *print_r($_FILES); *Array *( * [myfile] => Array * ( * [name] => 近期学习计划.txt * [type] => text/plain * [tmp_name] => G:\wamp\tmp\php39D0.tmp * [error] => 0 * [size] => 757 * ) * *) * *$_FILES["myfile"]["error"]上传相关的错误代码和常量: * *UPLOAD_ERR_OK *值: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上传函数 * * is_uploaded_file(file) * 判断指定的文件是否是通过 HTTP POST 上传的 * * move_uploaded_file(文件名,新位置) * 将上传的文件移动到新位置,如果目标文件已经存在,将会被覆盖。 * * * */header("Content-type:text/html;charset=utf-8");?><form enctype="multipart/form-data" action="demo_upload2.php" method="post">上传:<input type="file" name="myfile"><input type="submit" value="submit"></form><?php/** * demo_upload2.php */header("Content-type:text/html;charset=utf-8");define("MAX_UPLOAD_SIZE", 2000000);define("URL", dirname(__FILE__)."\uploads");$typeArr = array("image/gif","image/pjpeg","image/jpeg","image/x-png","image/png");//IE image/pjpeg png/x-pngif(isset($_FILES["myfile"])){$myfile = $_FILES["myfile"];//获取错误号$error = $myfile["error"];//只允许上传指定类型的文件$type = $myfile["type"];if(!in_array($type, $typeArr)){alertError("只允许上传的图片类型有gif,jpg,png");}//限制上传文件大小if($myfile["size"] > MAX_UPLOAD_SIZE){alertError("上传文件不能超过2M");}switch ($error){case 0://使用PHP自定义函数移动文件到自定义文件夹$tmp_name = $myfile["tmp_name"];$file_name = $myfile["name"];if(is_uploaded_file($tmp_name)){if(!is_dir(URL)){mkdir(URL,0777);//么有URL目录则创建}if(move_uploaded_file($tmp_name,URL."/".$file_name)){echo "文件上传成功,文件名称:".$file_name.",文件类型:".$myfile["type"].",文件大小:".$myfile["size"];echo "<img src='uploads/".$file_name."'>";}}else{alertError("临时文件夹找不到上的文件");}break;case 1:alertError("上传失败,文件大小超过了2M");break;case 2:alertError("上传失败,文件大小超过1M");break;case 3:alertError("上传失败,文件只有部分上传");break;case 4:alertError("没有文件被上传");break;case 5:alertError("上传文件大小为零");break;default:}}function alertError($message){echo "<script>alert('".$message."');history.back();</script>";exit;}
- PHP学习系列之文件上传
- PHP学习之文件上传
- PHP学习之PHP上传文件
- PHP学习笔记之上传文件
- PHP上传文件学习
- 学习PHP文件上传
- php之文件上传
- PHP之文件上传
- PHP文件之上传
- php之文件上传
- PHP之文件上传
- 文件上传之PHP
- php之文件上传
- PHP之上传文件
- PHP学习笔记之PHP文件上传(五)
- PHP相关系列 - PHP 文件上传类
- J2EE系列之SpringMVC学习笔记(六)--文件上传
- PHP学习系列之文件访问及文件操作
- Learning Cocos2d-x for XNA(1)——小窥cocos2d-x框架
- LIOP特征
- 代理服务器 Squid
- 程序员的自我修养(第一章)
- 无线局域网技术概述(Wireless LANs)——802.11协议
- PHP学习系列之文件上传
- arm学习笔记005之Linux平台下TFTP服务器构建
- Android 3.0以前版本使用Fragment提示getFragmentManager is undefined
- Binary Tree Level Order Traversal II
- 数据结构与算法系列-队列-队列的链式存储
- java装箱图解
- 感悟和读书笔记20131110
- 计算机网络_学习笔记 第四章 网络层
- LDA和PCA