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;}


 

原创粉丝点击