PHP入门教程之上传文件实例详解

2018-09-07 15:11

阅读:246

  本文实例讲述了PHP上传文件的方法。分享给大家供大家参考,具体如下:

  Demo1.php

   <form enctype=multipart/form-data action=Demo2.php method=post> <input type=hidden name=MAX_FILE_SIZE value=2000000 /> 上传文件: <input type=file name=userfile /> <input type=submit value=上传 /> </form>

  Demo2.php

   <?php //接受上传文件 //$_FILES; //存在,但是空值 //[userfile][name] 表示上传的文件名 //[userfile][type] 表示文件类型:例如,jpg 的文件类型为:image/jpeg //[userfile][tmp_name]表示上传的文件临时存放的位置 C:\WINDOWS\temp\php28.tmp //[userfile][error]表示错误类型,表示没有任何错误。 //[userfile][size]表示上传文件的大小 print_r($_FILES); echo <br/>; //is_uploaded_file -- 判断文件是否是通过 HTTP POST 上传的 //通过 HTTP POST 上传后,文件会存放在临时文件夹下 $fileMimes = array(image/jpeg,image/pjpeg,image/gif,image/png,image/x-png); //判断类型是否是数组里的一种 if(is_array($fileMimes)){ if(!in_array($_FILES[userfile][type],$fileMimes)){ echo <script>alert(本站只允许 jpg,png,gif 图片);history.back();</script>; exit; } } //创建一个常量 define(URL,dirname(__FILE__).\uploads); echo URL; //判断目录是否存在 if(!is_dir(URL)){ mkdir(URL,0777); //最大权限0777,意思是如果没有这个目录,那么就创建 } define(MAX_SIZE,2000000); if($_FILES[userfile][size] > MAX_SIZE){ echo <script>alert(上传不得超过 2 M);history.back();</script>; exit; } //还有两个问题要验证 //第二个问题,只允许 JPG 文件 // if($_FILES[userfile][type] != image/jpeg && $_FILES[userfile][type] != image/pjpeg){ // echo <script>alert(本站只允许 JPG 图片);history.back();</script>; // exit ; // } // switch ($_FILES[userfile][type]){ // case image/jpeg://火狐 // break; // case image/pjpeg: // break; // case image/gif: // break; // case image/png://火狐 // break; // case image/x-png://IE // break; // default: echo <script>alert(本站只允许 jpg,png,gif 图片);history.back();</script>; // exit ; // } //第一个问题,如果上传错误,怎么办 if($_FILES[userfile][error]>0){ switch ($_FILES[userfile][error]){ case 1:echo <script>alert(上传文件超过约定值1);history.back();</script>; break; case 2:echo <script>alert(上传文件超过约定值2);history.back();</script>; break; case 3:echo <script>alert(部分被上传);history.back();</script>; break; case 4:echo <script>alert(没有被上传);history.back();</script>; break; } exit; } if(is_uploaded_file($_FILES[userfile][tmp_name])){ //就在这里移动了 //move_uploaded_file -- 将上传的文件移动到新位置 //第一个参数,写上临时文件的地址, //第二个参数,第二个参数要写上你要存在的地址 //先去判断这个目录是否存在 //如果想屏蔽掉警告,直接加上 @ if(!move_uploaded_file($_FILES[userfile][tmp_name],URL./.$_FILES[userfile][name])){ //如果移动失败,就失败 echo 移动失败; exit; } }else{ echo <script>alert(临时文件夹找不到上传的文件);history.back();</script>; exit; } //全部通过就上传成功了 //必须传一个值给Demo3.php //文件上传的地址 echo <script>alert(文件上传成功);location.href=Demo3.php?url=.$_FILES[userfile][name].;</script>; ?>

  Demo3.php

   <?php $url = $_GET[url]; echo <img src=\uploads/.$url.\/>; ?>

  更多关于PHP相关内容感兴趣的读者可查看本站专题:《php文件操作总结》、《PHP数组(Array)操作技巧大全》、《PHP基本语法入门教程》、《PHP运算与运算符用法总结》、《php面向对象程序设计入门教程》、《PHP网络编程技巧总结》、《php字符串(string)用法总结》、《php+mysql数据库操作入门教程》及《php常见数据库操作技巧汇总》

  希望本文所述对大家PHP程序设计有所帮助。


评论


亲,登录后才可以留言!