PHP学习系列之文件上传
2013-11-10 22:15
375 查看
<?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-png if(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学习实例—3(文件的上传与下载)
- PHP开发学习——文件上传(move_uploaded_file)
- php 学习记录 formdata 文件上传 ajax html5
- 【日常学习笔记】PHP上传文件时权限问题~
- php学习之路---2(向服务器上传文件)
- PHP学习之文件上传
- PHP开发学习——文件上传(move_uploaded_file)
- PHP学习文件处理与文件上传 课件第1/2页
- PHP学习-----文件操作/上传和下载
- PHP学习系列之文件访问及文件操作
- PHP学习之路之PHP文件上传需要考虑的问题以及解决方法($_FILES,$_SERVER,substr,strrpos,file_exists,move_uploaded_file,is_uploaded_file,mkdir)
- 学习ASP.NET Core Razor 编程系列十五——文件上传功能(三)
- PHP学习文件处理与文件上传 课件第1/2页
- php_文件上传学习
- J2EE系列之SpringMVC学习笔记(六)--文件上传
- Lamp学习二: php上传文件
- php学习记录 iframe 文件上传
- [PHP]文件上传学习笔记
- php 文件上传学习
- PHP学习笔记:文件上传