首页 > 代码库 > felayman——PHP中图片上传到服务器

felayman——PHP中图片上传到服务器

1.upload_file.php

<?php

    //该文件负责获取上传的图片的扩展名和随机生成文件名

    header("content-type:text/html;charset=utf-8");

    /**

     * 获取文件扩展名

     *Enter description here ...

     * @param unknown_type $filename

     */

    function getFileName($filename){

       //strrchr— 查找指定字符在字符串中的最后一次出现

       return  substr(strrchr($filename,‘.‘), 1);

    }

    /**

     * 随机生成n位字符串

     * Enterdescription here ...

     * @param unknown_type $num

     */

    function rand_str($num){

    $str = "qwertyuioplkjhgfdsazxcvbnmQAZWSXEDCRFVTGBYHNUJMIKOLP1234567890";

    $str_len = strlen($str)-1;

    //echo$str_len;

    $s=‘‘;

       for ($i = 0; $i < $num; $i++) {

           $s.=$str[rand(0,$str_len)];

       }

       echo $s;

    }

?>

2.index.html

<formaction="upload_file.php"method="post">

       <inputtype="filename="file1"/>

       <inputtype="submitvalue="上传"/>

    </form>

3.deal_upload.php

<?php

    header("content-type:text/html;charset=utf-8");

    //引入获取上传文件的名称已经生成文件名的函数lib

    require ‘upload_file.php‘;

    //设置文件要保存的目录

    $upload_dir = "files/";

    if(!file_exists($upload_dir)){

        mkdir($upload_dir);

    }

    //设置运行上传的文件类型

    $type =array(‘jpg‘,‘png‘,‘gif‘,‘jpeg‘);

    //in_array — 检查数组中是否存在某个值

    if(!in_array(strtolower(getFileName($_FILES[‘file‘][‘name‘])), $type)){

        //implode,将数组联合成一个字符串

        $text = implode(‘,‘, $type);

        echo "<script>alert(‘文件类型只允许是{$text}‘);window.location=‘index.html‘;</script>";

    }else{

        //获取文件名称

        $filename = explode(‘.‘, $_FILES[‘file‘][‘name‘]);

            $filename[0] =rand_str(10);

            $name =implode(‘.‘, $filename);

            $uploadfile=$upload_dir.$name;

        //is_uploaded_file — 判断文件是否是通过 HTTP POST上传的

        if(is_uploaded_file($_FILES[‘file‘][‘tmp_name‘])){

            //move_uploaded_file— 将上传的文件移动到新位置

            if(move_uploaded_file($_FILES[‘file‘][‘tmp_name‘],$uploadfile)){

                $file_path =  getcwd().‘\\‘.$uploadfile;           echo "<center> 您的文件上传完毕,上传图片预览:</center>";

                echo "<img src=http://www.mamicode.com/‘$uploadfile‘/><br/>";

                echo "<a href=‘javascript:history.go(-1)‘>继续上传</a>";

            }else{

                echo "上传失败";

            }

        }

    }

?>