文件上传——后台上传文件并进行后缀名和大小限制

实验环境:php

实验要求:仅能上传jpg格式的文件,且不得大于20K

实验步骤:

一、html代码如下:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <meta charset="utf-8">
</head>
<body>
<!--multipart/form-data  表示对上传的文件不进行编码处理-->
<form action="fileupload.php" method="POST"enctype="multipart/form-data">
    <input type="file" name="uploadfile">
    <input type="submit">

</form>
</body>
</html>

二、php代码如下:

<?php
   header("Content-Type:text/html;charset=utf-8");
   if (isset($_FILES["uploadfile"])){
       $uploadfile=$_FILES["uploadfile"];
           //将上传的文件从临时目录移动到当前web目录(当前目录下的uoload目录)
            $filename=$uploadfile["tmp_name"];
            //需求一:限制文件上传的后缀名  为jpg格式
             $name=$uploadfile["name"];
            //a.获取后缀名 如果不是jpg,直接结束
            $extpos=strpos($name,".");//该函数可获得小数点的位置
            $ext=substr($name,$extpos+1);
            if ($ext !="jpg"){
                echo "上传文件类型失败";
                die();
            }
            //需求二:限制文件上传大小为2M
            $filesize=$uploadfile["size"];
            if ($filesize>1024*20){
                echo "文件过大,上传失败";
                die();
            }
            $destination="upload/".$uploadfile["name"];
            //上传中文件名乱码  将文件名从utf-8编码转换为gbk编码
            $destination=iconv("utf-8","gbk",$destination);
            //上传一些文件报错  上传的路径采用绝对路径
            move_uploaded_file($filename,$destination);
   }

三、执行html文件

1.上传php格式的文件,显示上传文件类型失败

2.上传一个大于20k的文件,提示“文件过大,上传失败”

发布了38 篇原创文章 · 获赞 21 · 访问量 1939

猜你喜欢

转载自blog.csdn.net/cxrpty/article/details/104303568