php單個檔案上傳

技術小牛人發表於2017-11-20
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
<?php
/*
 * 檔案上傳:
 *      1、如何控制上傳檔案
 *      2、對上傳檔案判斷(格式、大小)
 *      3、學習執行檔案上傳操作方法
 *      $_FILES 陣列元素
 *      $_FILES[filename][name]:儲存上傳的檔名
 *      $_FILES[filename][size]:儲存上傳的檔案大小,單位為位元組
 *      $_FILES[filename][tmp_name]:儲存檔案在臨時目錄中使用的檔名
 *      $_FILES[filename][type]:儲存上傳檔案的MIME型別,型別由"/"分隔
 *      $_FILES[filename][error]:儲存與檔案上傳相關的錯誤程式碼
 *                          0:上傳成功
 *                          1:上傳檔案的大小超出了PHP配置
 *                          2:表示上傳檔案大小超出了表單中MAX_FILE_SIZE選項所指定的值
 *                          3:表示檔案只被上傳了一部份
 *                          4:表示沒有上載任何檔案
 * /
    if(!empty($_FILES[`up_picture`][`name`])){              //判斷上傳內容是否為空
        if($_FILES[`up_picture`][`error`]>0){                //判斷檔案是否可以上傳到伺服器
            echo "上傳錯誤:";
            switch ($_FILES[`up_picture`][`error`]){
                case 1:
                    echo "上傳檔案大小超出配置檔案規定值";
                    break;
                case 2:
                    echo "上傳檔案大小超出表單中約定的值";
                    break;
                case 3:
                    echo "上傳檔案不全";
                    break;
                case 4:
                    echo "沒有上傳檔案";
                    break;
            }
        }else{
            list($maintype,$subtype)=explode("/"$_FILES[`up_picture`][`type`]);//獲取上傳檔案型別
            if($maintype!="image"||$subtype!="pjpeg"){   //判斷上傳檔案格式是否正確
                echo "上傳檔案格式不正確";
            }else{
                if(!is_dir("upfile")){                  //判斷指定目錄是否存在
                    mkdir("upfile");                    //建立目錄
                }
                $path "upfile/".time().strtolower(strstr($_FILES[`up_picture`][`name`], "."));//動態建立生成檔案路徑
                if(is_uploaded_file($_FILES[`up_picture`][`tmp_name`])){//判斷檔案是否可以上傳
                    if(move_uploaded_file($_FILES[`up_picture`][`tmp_name`], $path)){  //如果上傳成功
                        echo "檔案:<span class=`STYLE1`>".time().strtolower(strstr($_FILES[`up_picture`][`name`], "."))
                        ."</span> 上傳成功,大小為:<span class=`STYLE1`>".$_FILES[`up_picture`][`size`]."</span>位元組";
                    }else{
                        echo "上傳失敗";
                    }
                }else{
                    echo "上傳檔案:<span class=`STYLE1`>".$_FILES[`up_picture`][`name`]."</span>不合法!";
                }
            }
        }
    }
?>
<form action="06.php" method="post" enctype="multipart/form-data">
    <input type="hidden" name="MAX_FILE_SIZE" value="100000" />
    <input type="file" name="up_picture">

    <input type="submit" value="上傳"/>
</form>


本文轉自  wbb827  51CTO部落格,原文連結:http://blog.51cto.com/wbb827/1325280


相關文章