PHP 接收上傳檔案資訊的系統陣列是 $_FILES。
在 PHP 中,我們經常需要處理檔案上傳,例如上傳圖片、影片等檔案。為了處理上傳過程中的相關資訊和數據,PHP 提供了一個特殊的系統陣列 $_FILES,用來儲存上傳的檔案資訊。
$_FILES 變數是一個二維關聯數組,其結構如下:
$_FILES = array( 'file' => array( 'name' => 'filename.txt', //文件名 'type' => 'text/plain', //文件MIME类型 'tmp_name' => '/tmp/php/php1h4jCk', //上传的临时文件名 'error' => 0, //上传的错误代码 'size' => 123 //上传文件的大小 ) );
其中,數組中的"file" 是表單元素的名稱,例如下面的HTML程式碼:
<form enctype="multipart/form-data" method="POST"> <input type="file" name="file"/> </form>
在這個表單中,"file" 是表單元素的名稱。
在 $_FILES 中,具體儲存的資訊包括:
以下是 $_FILES 中各個欄位的意思:
上傳檔案的原始檔案名,不包含檔案路徑。如果一個檔案上傳時,檔案名稱被修改了,則這個變數儲存的是新的檔案名稱。
上傳檔案的 MIME 類型,即檔案的內容類型,例如 text/plain、application/octet-stream 等。
上傳檔案的暫存檔案名,以及存放這個暫存檔案的路徑。這個路徑是伺服器端的暫存目錄。
上傳檔案的錯誤代碼。如果上傳成功,這個值為 0。其他可能的值包括:
- UPLOAD_ERR_OK:文件上传成功。 - UPLOAD_ERR_INI_SIZE:上传的文件超过了php.ini 中 upload_max_filesize 选项限制的值。 - UPLOAD_ERR_FORM_SIZE:上传文件的大小超过了 HTML 表单中 MAX_FILE_SIZE 选项指定的值。 - UPLOAD_ERR_PARTIAL:文件只有部分被上传。 - UPLOAD_ERR_NO_FILE:没有文件被上传。 - UPLOAD_ERR_CANT_WRITE:写入磁盘失败。 - UPLOAD_ERR_EXTENSION:PHP扩展停止文件上传。
上傳檔案的大小,以位元組為單位。
使用$_FILES 變數的範例:
如果我們想要一個表單中上傳一個圖片,我們可以使用以下HTML 程式碼:
<form enctype="multipart/form-data" method="POST"> <input type="hidden" name="MAX_FILE_SIZE" value="100000" /> <input type="file" name="image" /> <input type="submit" name="submit" value="Upload Image" /> </form>
在伺服器端,我們可以使用以下PHP 程式碼來處理上傳檔案:
<?php if(isset($_POST['submit'])) { $file = $_FILES['image']; $filename = $file['name']; $filetmp = $file['tmp_name']; $filesize = $file['size']; $filetype = $file['type']; // TODO: 处理上传文件 move_uploaded_file($filetmp, "uploads/" . $filename); } ?>
在處理上傳檔案時,我們首先檢查提交的表單是否包含了"submit" 字段,這是為了避免在沒有提交表單的情況下處理上傳檔案的錯誤。
我們先從 $_FILES 變數中取得檔案訊息,並定義變數 $filename、$filetmp、$filesize、$filetype,分別儲存檔案名稱、上傳檔案的暫存檔案名稱、檔案大小和MIME類型。
接下來,我們可以使用 PHP 函數 move_uploaded_file() 函數,把上傳的檔案從暫存目錄移到我們儲存檔案的指定目錄中,例如上面範例中的 "uploads/" 目錄。
總結:
$_FILES 是PHP 中處理檔案上傳的關鍵變量,它包含了上傳檔案的各種信息,包括檔案名稱、MIME類型、上傳臨時檔案名稱、大小等等。在使用 $_FILES 時,我們需要注意表單提交的時機、處理上傳檔案的邏輯,以及上傳檔案的儲存方式等。
以上是php接收上傳檔案資訊的系統陣列是哪個的詳細內容。更多資訊請關注PHP中文網其他相關文章!