程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> 關於PHP編程 >> php文件上傳,

php文件上傳,

編輯:關於PHP編程

php文件上傳,


<?php
    $allowtype = array("gif", "png", "jpg");   //設置充許上傳的類型為gif, png和jpg
    $size = 1000000;                           //設置充許大小為1M(1000000字節)以內的文件
    $path = "./uploads";                       //設置上傳後保存文件的路徑
    
    //判斷文件是否可以成功上傳到服務器,$_FILES['myfile']['error'] 為0表示上傳成功
    if($_FILES['myfile']['error'] > 0) {      
        echo '上傳錯誤: ';
        switch ($_FILES['myfile']['error']) {
             case 1:  die('上傳文件大小超出了PHP配置文件中的約定值:upload_max_filesize');  
            case 2:  die('上傳文件大小超出了表單中的約定值:MAX_FILE_SIZE');  
            case 3:  die('文件只被部分上載'); 
            case 4:  die('沒有上傳任何文件'); 
            default: die('末知錯誤');
           }
    }
    
    //判斷上傳的文件是否為充許的文件類型,通過文件的後綴名
    $hz = array_pop(explode(".", $_FILES['myfile']['name']));
    //通過判斷文件的後綴方式,來決定文件是否是充許上傳的文件類型
    if(!in_array($hz, $allowtype)) {
        die("這個後綴是<b>{$hz}</b>,不是充許的文件類型!");
    }
    
    /* 也可以通過獲取上傳文件的MIME類型中的主類型和子類型,來限制文件上傳的類型
    list($maintype,$subtype)=explode("/",$_FILES['myfile']['type']);    
      if ($maintype=="text") {   //通過主類型限制不能上傳文本文件,例如.txt .html .php等文件
        die('問題: 不能上傳文本文件。');
    } */

    //判斷上傳的文件是否為充許大小
    if($_FILES['myfile']['size'] > $size ) {
        die("超過了充許的<b>{$size}</b>字節大小");
    }
    
    //為了系統安全,也為了同名文件不會被覆蓋,上傳後將文件名使用系統定義
    $filename = date("YmdHis").rand(100,999).".".$hz;
    
    //判斷是否為上傳文件
    if (is_uploaded_file($_FILES['myfile']['tmp_name'])) { 
         if (!move_uploaded_file($_FILES['myfile']['tmp_name'], $path.'/'.$filename)) {  
            die('問題: 不能將文件移動到指定目錄。');
        }
     }else{
        die("問題: 上傳文件{$_FILES['myfile']['name']}不是一個合法文件: ");
    }

    //如果文件上傳成功則輸出
    echo "文件{$upfile}上傳成功,保存在目錄{$path}中,大小為{$_FILES['myfile']['size']}字節";   

 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved