zhao
2021-07-09 0821715ebc11d3934d0594a1cc2c39686d808906
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
<?php
error_reporting(0);
sleep(3);
//得到目录下的文件总数
function get_file_count($dir_name){
    $files = 0;
    if ($handle = opendir($dir_name)) {
    while (false !== ($file = readdir($handle))) {
        $files++;
    }
    closedir($handle);
    }
    return $files;
}
//循环删除目录和文件
function delDirAndFile($dirName){
    if ($handle = opendir($dirName) ) {
       while ( false !== ( $item = readdir($handle) ) ){
          if ( $item != "." && $item != ".." ) {
              unlink("$dirName/$item");
          }
 
       }
       closedir($handle);
 
    }
}
$files = array();
$url = 'http://'.$_SERVER['SERVER_NAME'].':'.$_SERVER['SERVER_PORT'].rtrim(dirname($_SERVER['PHP_SELF']), '/\\')."/";
// echo $url;
// print_r($_SERVER);
 
// print_r ($_FILES);
function uploadFile($file_label){
    // global $url;
    $this_file = $_FILES[$file_label];
 
}
$fileInput = 'Filedata';
$dir = './files/';
$type = $_POST['type'];
@mkdir($dir);
 
$isExceedSize = false;
/*-----------------*/
//以下三行代码用于删除文件,实际应用时请予以删除,get_file_count()和delDirAndFile()函数都可以删掉
$dirName =  'files';
$size = get_file_count($dirName);
if($size > 3) delDirAndFile($dirName);
/*-----------------*/
$files_name_arr = array($fileInput);
foreach($files_name_arr as $k=>$v){
    $pic = $_FILES[$v];
    $isExceedSize = $pic['size'] > 500000;
    if(!$isExceedSize){
        if(file_exists($dir.$pic['name'])){
            @unlink($dir.$pic['name']);
        }
        // 解决中文文件名乱码问题
        $pic['name'] = iconv('UTF-8', 'GBK', $pic['name']);
        $result = move_uploaded_file($pic['tmp_name'], $dir.$pic['name']);
        $files[$k] = $url.$dir.$pic['name'];
    }
}
if(!$isExceedSize && $result){
    $arr = array(
        'status' => 1,
        'type' => $type,
        'data' => array('name' => $_FILES[$fileInput]['name'],
                        'url' => $dir.$_FILES[$fileInput]['name'])
    );
}else if($isExceedSize){
    $arr = array(
        'status' => 0,
        'type' => $type,
        'msg' => "文件大小超过500kb!"
    );
}else{
    $arr = array(
        'status' => 0,
        'type' => $type,
        'msg' => "未知错误!".$result
    );
}
 
echo json_encode($arr);
 
?>