• PHP图片文件上传类型限制扩展名限制大小限制与自动检测目录创建。


    程序测试网址:http://blog.z88j.com/fileuploadexample/index.html

    代码分为两部分:

    一部分form表单:

     1 <!doctype html>
     2 <html>
     3 <head>
     4 <title>文件上传案例-file upload example</title>
     5 <meta http-equiv="content-type" contnet="text/html" charset="utf-8"/>
     6 </head>
     7 <body>
     8 <h1>文件上传支持图片.gif.png.jpg.jpeg限制200kb大小的文件</h1>
     9 <form method="POST" action="upload_file.php" enctype="multipart/form-data">
    10 <lable for="file">File:</lable>
    11 <input name="file" type="file" id="file"/><br/>
    12 <input type="submit" value="上传文件"/>
    13 </form>
    14 </body>
    15 </html>

    二部分PHP后台上传验证程序:

     1 <meta charset="utf-8"/>
     2 <?php
     3 $array=array("gif","png","jpg","jpeg");//赋值一个数组
     4 $tmp=explode(".",$_FILES['file']['name']);//用explode()函数把字符串打散成为数组。
     5 $extension=end($tmp);//用end获取数组最后一个元素
     6 if($_FILES['file']['error']>0){//判断提交上的文件是否为空或错误
     7     echo "文件未选择,或非法文件!错误:".$_FILES['file']['error'];
     8 }else{
     9     if((($_FILES['file']['type']=="image/gif")//判断提交上的文件的文件类型是否正确和文件扩展名是否正确,文件大小是否超2048kb。
    10     ||($_FILES['file']['type']=="image/png")
    11     ||($_FILES['file']['type']=="image/jpeg")
    12     ||($_FILES['file']['type']=="image/jpg")
    13     ||($_FILES['file']['type']=="image/pjpeg")
    14     ||($_FILES['file']['type']=="image/x-png"))
    15     &&($_FILES['file']['size']<204800)
    16     &&in_array($extension,$array)){
    17         echo "文件大小和文件扩展名验成功!<br/>";
    18         if(file_exists("upload/")){//用file_exists函数检测是否有upload目录,用if判断。
    19             if(file_exists("upload/".$_FILES['file']['name'])){//用file_exists函数检测是否在upload目录下有['name']文件。用if判断。
    20             echo "已存在该文件名!位置:upload/".$_FILES['file']['name'];
    21         }else{//显示各个信息,然后用move_upload_file函数把临时目录文件移动到upload目录。
    22             echo "上传完成,下面是信息:<br/>";
    23             echo "上传文件名:".$_FILES['file']['name']."<br/>";
    24             echo "上传类型:".$_FILES['file']['type']."<br/>";
    25             echo "上传文件大小:".$_FILES['file']['size']."<br/>";
    26             echo "上传文件临时缓存位置:".$_FILES['file']['tmp_name']."<br/>";
    27             move_uploaded_file($_FILES['file']['tmp_name'],"upload/".$_FILES['file']['name']);//这里我们用到两个参数,一是被移到的文件,二是移动到的目标位置。
    28             echo "储存服务器相对的位置为:/upload/".$_FILES['file']['name'];
    29         }
    30         }else{//没有目录的情况下,使用mkdir函数创建upload目录。
    31             echo "不存在upload目录,已自动创建upload/目录";
    32             mkdir("upload");
    33         }
    34     }else{
    35         echo "扩展名和文件大小不正确,扩展名支持gif,jpg,png,jpeg,文件大小支持200kb";
    36     }
    37     //echo "文件临时储存的位置:".$_FILES['file']['tmp_name'];//把文件获取到临时储存的位置里面,并打印出来;
    38     //move_uploaded_file($_FILES['file']['tmp_name'],"upload/".$_FILES['file']['name']);//把临时储存的文件移到upload目录下。
    39 }
    40 ?>

     后台PHP程序经过四次if判断进行四次判断上传的文件:

    第一次if判断上传的文件是否空提交或者是否有错误。

    第二次if判断上传的文件类型是否正确,扩展名是否匹配,大小是否合理。

    第三次if判断上传的文件,所属的目录是否存在,假设不存在,系统会自动用mkdir函数创建一个upload目录;

    第四次if判断上传的文件是否已存在,假设存在会进行提示并停止上传。相反如果不存在会进行上传操作;

  • 相关阅读:
    图形控件开发商十年之旅回顾
    图表控件,数据可视化,你真的选对了吗?
    话说LightningChart是最快最美的图表控件,到底先进在哪里?
    LayUI技巧总结
    解决EFCore缓存机制导致的数据查询错误问题
    关于反射的那些骚操作
    .NetCore借助AutoMapper实现全局数据字段按角色过滤
    记录一次EFCore CodeFirst迁移实践,解决多个项目表结构同步更新问题
    SQL查询整个数据库中某个特定值所在的表和字段的方法
    Visual Studio利用正则表达式进行查找和替换
  • 原文地址:https://www.cnblogs.com/UncleFreak/p/5784137.html
Copyright © 2020-2023  润新知