PHP 实现多文件上传功能

来源:互联网 发布:2017天猫双11销售数据 编辑:程序博客网 时间:2024/06/04 19:01
index.php
<!DOCTYPE html><html lang="en"><head>    <meta charset="UTF-8">    <title>Document</title></head><body>        <!-- 上传结构-->        <form action="upload.php" method="post" enctype="multipart/form-data">                请选择上传文件:<br/>            <input type="file" name="upload[]" /><br/>            <input type="file" name="upload[]" /><br/>            <input type="file" name="upload[]" /><br/>            <input type="submit" name="submit" value="立即上传"></input>        </form></body></html>upload.php<?php header("content-type:text/html;charset=utf-8");require_once 'config.php';//将封装函数导进来if (isset($_POST['submit'])) {    //上传文件储存路径:当前文件夹 upload 文件夹    $path= './upload';    //假如,允许上传的文件格式 为 image/jpeg image/png    $arr_mime=array('image/jpeg','image/png');    //将三维数组转化成二维数组    $arr=$_FILES['upload'];    //函数调用    upload($arr,$arr_mime,$path);}else{    echo "<script>alert('非法操作');location.href='index.php';</script>";} ?>config.php<?php /** * [upload descript] *@param [type]$file [表单中文件域name 的值 如:$_FILES['upload']] *@param  [type] $arr_mime [允许上传的文件类型] *@param  [type] $path     [自己定义的上传文件的路径] * *@return [type]           [description] */    function upload($file,$arr_mime,$path){        //判断表单是否由 HTTP POST 上传        //is_uploaded_file(上传临时文件)        if (!is_uploaded_file($file['tmp_name'])) {            exit('上传的文件有问题');        }        //判断上传文件是否有错误        if ($file['error']!=0) {            exit('上传文件有错误,请重新上传');        }        //控制上传文件的大小,允许上传小于2Mb        if($file['size']>2*1024*1024){            exit('上传的文件大于2mb');        }        //获取文件的扩展命名         //方法一        //strrpos- 计算指定字符串 在字符串中的最后出现的位置        //$index=strrpos($file['name'],'.');        //$str=substr($file['name'], $index);        //echo $str;                //方法2  strrchr - 查找字符串在字符串中 最后一次出现            $ext=strrchr($file['name'],'.');                //我们使用第三方的扩展 判断文件类型 通过上传文件扩展名 判断上传文件类型是不靠谱的        $fs=finfo_open(FILEINFO_MIME_TYPE);// 调用第三方扩展 获取        //var_dump($fs);// resource(2) of type (file_info) 资源类型 //资源类型的详细类型        //finfo_file(资源类型,上传临时文件)        $mime=finfo_file($fs,$file['tmp_name']);        //echo $mime;        //假设本网站 只允许用户 上传 类型图片类型为 image/jpeg image/png           //$arr_mime=array('image/jpeg','image/png');        //in_array($mime,$arr);判断 得到的类型在不在数组内        if (!in_array($mime,$arr_mime)) {            exit('上传文件不合法,请重新上传');        }        //构建临时文件        $filename = $file['tmp_name'];        //构建 目标文件的 文件名及路径        $path='./upload';//在服务器的目录        $destination= $path.'/'.date('YmdHis').$ext;        if (!move_uploaded_file($filename, $destination)){            exit('上传失败!');        }    } ?>
原创粉丝点击