首頁  >  文章  >  後端開發  >  php接收上傳檔案資訊的系統陣列是哪個

php接收上傳檔案資訊的系統陣列是哪個

WBOY
WBOY原創
2023-05-06 10:43:07751瀏覽

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 中,具體儲存的資訊包括:

  • name:上傳的檔案名稱。
  • type:上傳檔案的 MIME 類型。
  • tmp_name:上傳的暫存檔案名,儲存在伺服器端的暫存目錄中。
  • error:上傳檔案的錯誤代碼,如果為0則表示上傳成功。
  • size:上傳檔案的大小。

以下是 $_FILES 中各個欄位的意思:

  • #name

上傳檔案的原始檔案名,不包含檔案路徑。如果一個檔案上傳時,檔案名稱被修改了,則這個變數儲存的是新的檔案名稱。

  • type

上傳檔案的 MIME 類型,即檔案的內容類型,例如 text/plain、application/octet-stream 等。

  • tmp_name

上傳檔案的暫存檔案名,以及存放這個暫存檔案的路徑。這個路徑是伺服器端的暫存目錄。

  • error

上傳檔案的錯誤代碼。如果上傳成功,這個值為 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扩展停止文件上传。
  • size

上傳檔案的大小,以位元組為單位。

使用$_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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn