zoukankan      html  css  js  c++  java
  • 上传图片函数

     1 <?php
     2     /**
     3      *  文件上传
     4      *  @param array $file 文件上传的信息(是一个数组,有5个元素)
     5      *  @param array $allow 允许的文件上传的类型
     6      *  @param string & $error 引用传递,用来记录错误信息
     7      *  @param string $path 文件上传目录
     8      *  @param int $maxsize = 1024*1024 允许文件上传的大小
     9      *  @param mixed false/$newname 如果上传失败就返回false , 成功就返回文件的新名字
    10      */
    11     
    12     function upload($file,$allow,&$error,$path,$maxsize=1048576){
    13             switch($file['error']){
    14                 case 1 : $error = '上传的文件超过了选项限制的值!';
    15                          return false;
    16                 case 2 : $error = '上传文件的大小超过了选项指定的值!';
    17                          return false;
    18                 case 3 : $error = '文件只有部分被上传!';
    19                          return false;
    20                  case 4 : $error = '没有选择文件被上传!';
    21                          return false;
    22                 case 6 : 
    23                 case 7 : $error = '文件写入失败,系统繁忙!';
    24                          return false;
    25                 }
    26 
    27             // 判断文件的大小
    28             if($file['size'] > $maxsize){
    29                 $error = '文件上传过大!';
    30                 return false;
    31             }
    32 
    33             if(!in_array($file['type'],$allow)){
    34                 $error = '文件上传类型不存在,允许上传是类型有:' . implode(',',$allow);
    35                 return false;
    36             }
    37 
    38             $newname = randname($file['name']);
    39             $target = $path . '/' . $newname;
    40             $result = move_uploaded_file($file['tmp_name'],$target);
    41             if($result){
    42                 return $newname;
    43             }else{
    44                 $error = '发生未知错误,上传失败!';
    45                 return false;
    46             }
    47         }
    48 
    49     /**
    50      *  生成一个随机名字的函数,文件名 = 当前时间加上随机数
    51      *  @param string $filename 文件原始名字
    52      *  @return string $newname 文件的新名字
    53      */
    54     function randname($filename){
    55         $newname = date('YmdHis');
    56         //随机后面的数字
    57         $str = "abcdefghijklmnopqrstuvwxyz";
    58         for($i = 0;$i < 6;$i++){
    59             $newname .= $str[mt_rand(0,strlen($str) - 1)];
    60         }
    61         $newname .= strrchr($filename,'.');
    62         return $newname;
    63     }
  • 相关阅读:
    实现168732363.66元用逗号格式为168,732,363.66元
    程序员的十步学习法
    js中字符串方法大全
    js中数组方法大全
    异常,常用工具
    抽象类,常用类
    this 关键字
    面向对象
    DOS.JDK
    Android
  • 原文地址:https://www.cnblogs.com/php08049/p/7634440.html
Copyright © 2011-2022 走看看