上传图片函数

 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     }

 

posted @ 2017-10-07 11:48  初代源码  阅读(320)  评论(0编辑  收藏  举报