PHP文件上傳

開發中須要上傳圖片、音樂、視頻等等,這種上傳傳遞是二進制數據。php

1.1客戶端上傳文件數組

        文件域:服務器

<input type="file" name="image">

           表單的enctype屬性:app

          默認狀況下,表單傳遞是字符流,不能傳遞二進制流,經過設置表單的enctype屬性傳遞複合數據。 函數

          enctype屬性的值有:post

  1. application/x-www-form-urlencoded:【默認】,表示傳遞的是帶格式的文本數據。編碼

  2. multipart/form-data:複合的表單數據(字符串,文件),文件上傳必須設置此值url

  3. text/plain:用於向服務器傳遞無格式的文本數據,主要用戶電子郵件

1.2服務器接收文件spa

        超全局變量$_FILES是一個二維數組,用來保存客戶端上傳到服務器的文件信息。二維數組的行是文件域的名稱,列有5個。操作系統

        一、$_FILES[][‘name’]:上傳的文件名

        二、$_FILES[][‘type]:上傳的類型,這個類型是MIME類型(image/jpeg、image/gif、image/png)

        三、$_FILES[][‘size’]:文件的大小,以字節爲單位

        四、$_FILES[][‘tmp_name’]:文件上傳時的臨時文件

        五、$_FILES[][‘error’]:錯誤編碼(值有0、一、二、三、四、六、7)0表示正確

1.3將上傳文件移動到指定位置

       函數:

move_uploaded_file(臨時地址,目標地址)

         代碼:

<body>
<?php
if(!empty($_POST)) {
    if($_FILES['face']['error']==0){  //上傳正確
        //文件上傳
        move_uploaded_file($_FILES['face']['tmp_name'],'./'.$_FILES['face']['name']);
    }else{
        echo '上傳有誤';
        echo '錯誤碼:'.$_FILES['face']['error'];
    }
}
?>
<form method="post" action="" enctype='multipart/form-data'>
    <input type="file" name="face">
    <input type="submit" name="button" value="上傳">
</form>
</body>

1.4與文件上傳有關的配置         

             post_max_size = 8M:表單容許的最大值

            upload_max_filesize = 2M:容許上傳的文件大小

            upload_tmp_dir =F:\wamp\tmp:指定臨時文件地址,若是不知道操做系統指定

            file_uploads = On:是否容許文件上傳

             max_file_uploads = 20:容許同時上傳20個文件

相關文章
相關標籤/搜索