溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

PHP中的$_FILES數(shù)組介紹

發(fā)布時(shí)間:2020-05-21 17:04:39 來(lái)源:億速云 閱讀:313 作者:鴿子 欄目:編程語(yǔ)言

$_FILES——通過(guò) HTTP POST 方式上傳到當(dāng)前腳本的項(xiàng)目的數(shù)組。

假設(shè)我們上傳文件字段name='userfile',$_FILES數(shù)組里包括:

$_FILES['userfile']['name']      //客戶端機(jī)器文件的原名稱。
$_FILES['userfile']['type']     //文件的 MIME 類型,如果瀏覽器提供此信息的話。一個(gè)例子是“image/gif”。不過(guò)此 MIME 類型在 PHP 端并不檢查,因此不要想當(dāng)然認(rèn)為有這個(gè)值。
$_FILES['userfile']['size']     //已上傳文件的大小,單位為字節(jié)。
$_FILES['userfile']['tmp_name']   //文件被上傳后在服務(wù)端儲(chǔ)存的臨時(shí)文件名。
$_FILES['userfile']['error']      //和該文件上傳相關(guān)的錯(cuò)誤代碼。此項(xiàng)目是在 PHP 4.2.0 版本中增加的。
/**

錯(cuò)誤碼有:

UPLOAD_ERR_OK

其值為 0,沒(méi)有錯(cuò)誤發(fā)生,文件上傳成功。

UPLOAD_ERR_INI_SIZE

其值為 1,上傳的文件超過(guò)了 php.ini 中 upload_max_filesize 選項(xiàng)限制的值。

UPLOAD_ERR_FORM_SIZE

其值為 2,上傳文件的大小超過(guò)了 HTML 表單中 MAX_FILE_SIZE 選項(xiàng)指定的值。

eg,在表單中添加隱藏域:value值單位是字節(jié)

<form enctype="multipart/form-data" action="test.php" method="POST">
  <!-- MAX_FILE_SIZE must precede the file input field -->
  <input type="hidden" name="MAX_FILE_SIZE" value="12" />
  <!-- Name of input element determines name in $_FILES array -->
  Send this file: <input name="userfile" type="file" />
  <input type="submit" value="Send File" />
</form>

UPLOAD_ERR_PARTIAL

其值為 3,文件只有部分被上傳。

UPLOAD_ERR_NO_FILE

其值為 4,沒(méi)有文件被上傳。

UPLOAD_ERR_NO_TMP_DIR

其值為 6,找不到臨時(shí)文件夾。PHP 4.3.10 和 PHP 5.0.3 引進(jìn)。

UPLOAD_ERR_CANT_WRITE

其值為 7,文件寫(xiě)入失敗。PHP 5.1.0 引進(jìn)。

文件被上傳后,默認(rèn)地會(huì)被儲(chǔ)存到服務(wù)端的默認(rèn)臨時(shí)目錄中,除非 php.ini 中的 upload_tmp_dir設(shè)置為其它的路徑。服務(wù)端的默認(rèn)臨時(shí)目錄可以通過(guò)更改PHP運(yùn)行環(huán)境的環(huán)境變量TMPDIR來(lái)重新設(shè)置,但是在PHP腳本內(nèi)部通過(guò)運(yùn)行 putenv() 函數(shù)來(lái)設(shè)置是不起作用的。該環(huán)境變量也可以用來(lái)確認(rèn)其它的操作也是在上傳的文件上進(jìn)行的。

文件上傳可能用到的其他函數(shù):

is_uploaded_file:

is_uploaded_file — 判斷文件是否是通過(guò) HTTP POST 上傳的
is_uploaded_file ( string $filename ) : bool

參數(shù):filename——要檢查的文件名。

返回值:成功時(shí)返回 TRUE, 或者在失敗時(shí)返回 FALSE。

如果 filename 所給出的文件是通過(guò) HTTP POST 上傳的則返回 TRUE。這可以用來(lái)確保惡意的用戶無(wú)法欺騙腳本去訪問(wèn)本不能訪問(wèn)的文件,例如 /etc/passwd。

move_uploaded_file:

move_uploaded_file — 將上傳的文件移動(dòng)到新位置
move_uploaded_file ( string $filename , string $destination ) : bool

參數(shù):filename  上傳的文件的文件名;destination 移動(dòng)文件到這個(gè)位置(絕對(duì)路徑)

本函數(shù)檢查并確保由 filename 指定的文件是合法的上傳文件(即通過(guò) PHP 的 HTTP POST 上傳機(jī)制所上傳的)。如果文件合法,則將其移動(dòng)為由 destination 指定的文件。

以上就是PHP 超全局變量之$_FILES詳解的詳細(xì)內(nèi)容,更多請(qǐng)關(guān)注億速云其它相關(guān)文章!

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI