1. 程式人生 > >簡單的檔案上傳

簡單的檔案上傳

檔案上傳:

準備工作:

1.來個表單頁面,放一個留言框,method="post" enctype="multipart/form-data"

上傳檔案原理:

是將客戶端檔案通過瀏覽器上傳到伺服器端

2.伺服器端配置

PHP配置檔案中file_uploads=on

儲存$_FILES:檔案上傳變數中


$_FILES[瀏覽框的名稱]['name']:上傳檔案的名稱

$_FILES[瀏覽框的名稱]['type']:上傳檔案的MIME型別

$_FILES[瀏覽框的名稱]['tmp_name']:儲存在服務端上的臨時檔名
我們在伺服器端操作的都是這個臨時檔案


$_FILES[瀏覽框的名稱]['error']:上傳檔案的錯誤號,0代表沒有錯誤, 代表上傳成功....4代表沒有檔案上傳

$_FILES[瀏覽框的名稱]['size']:上傳檔案的大小

上傳檔案步驟:

1接收資訊

2判斷你的錯誤號是否等於0或者UPLOAD_ERR_OK

3判斷下這個檔案是否通過HTTP POST方式上傳來的,is_upload_file($tmp_name)

4將伺服器端上的檔案移動指定目錄下

錯誤資訊

define('UPLOAD_ERR_OK',0);

define('UPLOAD_ERR_INI_SIZE',1);

define('UPLOAD_ERR_FORM_SIZE',2);

define('UPLOAD_ERR_PARTIAL',3);

define('UPLOAD_ERR_NO_FILE',4);

define('UPLOAD_ERR_NO_TMP_DIR',6);

define('UPLOAD_ERR_CANT_WRITE',7);

define('UPLOAD_ERR_EXTENSION',8);

0:沒問題

1:超過了php配置檔案中upload_max_filesize

2:超過了表單允許接收資料的大小

3:檔案部分被上傳

4:沒有檔案上傳

6:找不到臨時目錄

7:沒有寫的許可權

8:由於PHP的擴充套件程式中斷了檔案上傳

通過<input type="file" accept="image/jpeg,image/png">限制上傳型別,不過對我們來說不起作用,

<?php
header("content-type:text/html;charset=utf-8");
//預定義變數:$_FILES:檔案上傳變數
//print_r($_FILES);

//接受上傳檔案的資訊
$fliename=$_FILES['myFile']['name'];
$type=$_FILES['myFile']['type'];
$tmp_name=$_FILES['myFile']['tmp_name'];
$error=$_FILES['myFile']['error'];
$size=$_FILES['myFile']['size'];

//判斷下錯誤號是否等於0
if($error==0){
    //判斷檔案是否通過HTTP POST方式上傳來的
    if(is_uploaded_file($tmp_name)){
     $dest="uploads/".$filename;
        //開始移動
        if(move_uploaded_file($tmp_name,$dest)){
           echo"檔案上傳成功";
        }else{
           echo"檔案上傳失敗" ;
        }
    }else{
        echo "檔案不是通過HTTP POST方式上傳上來的"
    }
}




in_array()//在制定陣列中搜索值是否存在,存在返回為真,不存在返回為假
$array=array('a','b','c','d')
$search='a';
in_array($search,$array)
in_array($search,$array,true)//即比較型別也比較值