PHP文件上傳


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

1.1客戶端上傳文件

        文件域:

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

           表單的enctype屬性:

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

          enctype屬性的值有:

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

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

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

1.2服務器接收文件

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

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

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

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

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

        5、$_FILES[][‘error’]:錯誤編碼(值有0、1、2、3、4、6、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個文件

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM