zoukankan      html  css  js  c++  java
  • 关于PHP图片处理

    关于PHP图片处理

    该代码实现功能函数,把对应的图片(图片限制大小为2M)传到'当前目录/post_basic/upload/'下

    <?php
    /**
     * Created by PhpStorm.
     * User: wpq
     * Date: 16-11-12
     * Time: 上午11:01
     */
    header("content-type:text/html; charset=utf-8");
    //定义根路径
    
    
    
    //解决basename无法解决中文的函数
    function get_basename($filename){
        return preg_replace('/^.+[\\\/]/', '', $filename);
    }
    function uploadPhoto($name,$photo){
        define('ROOT_PATH', dirname(dirname(__FILE__)));
        //设置文件存放目录
        $base_path = './upload/' . $name . '/';
    
        if (!is_dir($base_path)) {
            mkdir($base_path,0777,true);
    //        if(file_exists($base_path))
    //            echo "目录创建成功!";
    //        else
    //            echo "创建目录失败!";
        } else {
            $dh = opendir($base_path);
            while ($file = readdir($dh)) {
                //echo "1";
                if ($file != "." && $file != "..") {
                    $fullpath = $base_path . "/" . $file;
                    //echo $fullpath;
                    if (!is_dir($fullpath)) {
                        unlink($fullpath);
                    } else {
                        // echo 'mubiao';
                        rmdir($fullpath);
                        // echo 'jieguo';
                    }
                }
            }
            closedir($dh);
    
        }
    
        //文件存放位置
        $target_path = $base_path . get_basename($photo["name"]);
    
        //var_dump($photo);
        //echo "11";
        // 设置flag;
        $flag = "true";
    //    echo $target_path;
        //上传限制,允许上传的图片后缀
        $allowedExts = array("gif", "jpeg", "jpg", "png");
        $temp = explode(".", $photo["name"]);
        // 获取文件后缀名
        $extension = strtolower(end($temp));
    
        if ((($photo["type"] == "image/gif")
                || ($photo["type"] == "image/jpeg")
                || ($photo["type"] == "image/jpg")
                || ($photo["type"] == "image/pjpeg")
                || ($photo["type"] == "image/x-png")
                || ($photo["type"] == "image/png"))
            && ($photo["size"] < 2048000*3)    // 小于 2 Mb
            && in_array($extension, $allowedExts)
        ) {
            if ($photo["error"] > 0) {
                $flag = "false";
            } else {
                move_uploaded_file($photo['tmp_name'], $target_path);
    //            echo $mesg = "success to upload";
            }
        } else {
            $mesg = "failde to upload";
        }
    //    echo '<br />';
    //    echo $target_path;
    //    echo '<br />';
    //    echo $path;
    //    echo '<br />';
        //将图片路径存入数据库S
        $path = str_replace('\', '/', realpath(ROOT_PATH . '/'));
        $avatorUrl = $path . '/post_basic/upload/' . $name . '/' . $photo['name'];
    
        return $avatorUrl;
    }
    
  • 相关阅读:
    protobuf 协议 windows 下 C++ 环境搭建
    protobuf 协议 windows 下 java 环境搭建
    ProtocolBuffers (二) android与PC,C#与Java 利用protobuf 进行无障碍通讯【Socket】
    C++ ofstream和ifstream详细用法
    C# 关于out和ref的问题
    java 解析office文件 大全
    Ezhuang
    IOS
    Android Client and PHP Server
    一个IM开源项目LiteTalk
  • 原文地址:https://www.cnblogs.com/wpqwpq/p/6056619.html
Copyright © 2011-2022 走看看