PHP $_FILES函數(shù)詳解
更新時(shí)間:2011年03月09日 12:45:22 作者:
在PHP中上傳一個(gè)文件建一個(gè)表單要比ASP中靈活得多。具體的看代碼。
如:
<form enctype="multipart/form-data" action="upload.php" method="post">
<input type="hidden" name="MAX_FILE_SIZE" value="1000">
<input name="myFile" type="file">
<input type="submit" value="上傳文件">
</form>
然后upload.php中可以直接用
$_FILES
$_POST
$_GET
等函數(shù)獲取表單內(nèi)容。
今天我們著重講$_FILES函數(shù)。
當(dāng)客戶端提交后,我們獲得了一個(gè)$_FILES 數(shù)組
$_FILES數(shù)組內(nèi)容如下:
$_FILES['myFile']['name'] 客戶端文件的原名稱。
$_FILES['myFile']['type'] 文件的 MIME 類型,需要瀏覽器提供該信息的支持,例如"image/gif"。
$_FILES['myFile']['size'] 已上傳文件的大小,單位為字節(jié)。
$_FILES['myFile']['tmp_name'] 文件被上傳后在服務(wù)端儲(chǔ)存的臨時(shí)文件名,一般是系統(tǒng)默認(rèn)??梢栽趐hp.ini的upload_tmp_dir 指定,但 用 putenv() 函數(shù)設(shè)置是不起作用的。
$_FILES['myFile']['error'] 和該文件上傳相關(guān)的錯(cuò)誤代碼。['error'] 是在 PHP 4.2.0 版本中增加的。下面是它的說明:(它們?cè)赑HP3.0以后成了常量)
UPLOAD_ERR_OK
值:0; 沒有錯(cuò)誤發(fā)生,文件上傳成功。
UPLOAD_ERR_INI_SIZE
值:1; 上傳的文件超過了 php.ini 中 upload_max_filesize 選項(xiàng)限制的值。
UPLOAD_ERR_FORM_SIZE
值:2; 上傳文件的大小超過了 HTML 表單中 MAX_FILE_SIZE 選項(xiàng)指定的值。
UPLOAD_ERR_PARTIAL
值:3; 文件只有部分被上傳。
UPLOAD_ERR_NO_FILE
值:4; 沒有文件被上傳。
值:5; 上傳文件大小為0.
文件被上傳結(jié)束后,默認(rèn)地被存儲(chǔ)在了臨時(shí)目錄中,這時(shí)您必須將它從臨時(shí)目錄中刪除或移動(dòng)到其它地方,如果沒有,則會(huì)被刪除。也就是不管是否上傳成功,腳本執(zhí)行完后臨時(shí)目錄里的文件肯定會(huì)被刪除。所以在刪除之前要用PHP的 copy() 函數(shù)將它復(fù)制到其它位置,此時(shí),才算完成了上傳文件過程。
復(fù)制代碼 代碼如下:
<form enctype="multipart/form-data" action="upload.php" method="post">
<input type="hidden" name="MAX_FILE_SIZE" value="1000">
<input name="myFile" type="file">
<input type="submit" value="上傳文件">
</form>
然后upload.php中可以直接用
$_FILES
$_POST
$_GET
等函數(shù)獲取表單內(nèi)容。
今天我們著重講$_FILES函數(shù)。
當(dāng)客戶端提交后,我們獲得了一個(gè)$_FILES 數(shù)組
$_FILES數(shù)組內(nèi)容如下:
$_FILES['myFile']['name'] 客戶端文件的原名稱。
$_FILES['myFile']['type'] 文件的 MIME 類型,需要瀏覽器提供該信息的支持,例如"image/gif"。
$_FILES['myFile']['size'] 已上傳文件的大小,單位為字節(jié)。
$_FILES['myFile']['tmp_name'] 文件被上傳后在服務(wù)端儲(chǔ)存的臨時(shí)文件名,一般是系統(tǒng)默認(rèn)??梢栽趐hp.ini的upload_tmp_dir 指定,但 用 putenv() 函數(shù)設(shè)置是不起作用的。
$_FILES['myFile']['error'] 和該文件上傳相關(guān)的錯(cuò)誤代碼。['error'] 是在 PHP 4.2.0 版本中增加的。下面是它的說明:(它們?cè)赑HP3.0以后成了常量)
UPLOAD_ERR_OK
值:0; 沒有錯(cuò)誤發(fā)生,文件上傳成功。
UPLOAD_ERR_INI_SIZE
值:1; 上傳的文件超過了 php.ini 中 upload_max_filesize 選項(xiàng)限制的值。
UPLOAD_ERR_FORM_SIZE
值:2; 上傳文件的大小超過了 HTML 表單中 MAX_FILE_SIZE 選項(xiàng)指定的值。
UPLOAD_ERR_PARTIAL
值:3; 文件只有部分被上傳。
UPLOAD_ERR_NO_FILE
值:4; 沒有文件被上傳。
值:5; 上傳文件大小為0.
文件被上傳結(jié)束后,默認(rèn)地被存儲(chǔ)在了臨時(shí)目錄中,這時(shí)您必須將它從臨時(shí)目錄中刪除或移動(dòng)到其它地方,如果沒有,則會(huì)被刪除。也就是不管是否上傳成功,腳本執(zhí)行完后臨時(shí)目錄里的文件肯定會(huì)被刪除。所以在刪除之前要用PHP的 copy() 函數(shù)將它復(fù)制到其它位置,此時(shí),才算完成了上傳文件過程。
您可能感興趣的文章:
- PHP使用fopen與file_get_contents讀取文件實(shí)例分享
- PHP file_get_contents函數(shù)讀取遠(yuǎn)程數(shù)據(jù)超時(shí)的解決方法
- php 使用file_get_contents讀取大文件的方法
- PHP讀取大文件的類SplFileObject使用介紹
- php讀取本地文件常用函數(shù)(fopen與file_get_contents)
- php fseek函數(shù)讀取大文件兩種方法
- PHP移動(dòng)文件指針ftell()、fseek()、rewind()函數(shù)總結(jié)
- php file_put_contents()功能函數(shù)(集成了fopen、fwrite、fclose)
- PHP file_get_contents 函數(shù)超時(shí)的幾種解決方法
- php使用file函數(shù)、fseek函數(shù)讀取大文件效率對(duì)比分析
相關(guān)文章
php 無法加載mysql的module的時(shí)候的配置的解決方案引發(fā)的思考
今天配置php 的時(shí)候,發(fā)現(xiàn)沒配起mysql ,wordpress提示我需要 mysql 的module之后上google搜索,大多數(shù)都是說php.ini 沒加載起2012-01-01php使用json_decode后數(shù)字對(duì)象轉(zhuǎn)換成了科學(xué)計(jì)數(shù)法的解決方法
這篇文章主要介紹了php使用json_decode后數(shù)字對(duì)象轉(zhuǎn)換成了科學(xué)計(jì)數(shù)法的解決方法,涉及php操作json格式數(shù)據(jù)與數(shù)值轉(zhuǎn)換相關(guān)技巧,需要的朋友可以參考下2017-02-02基于PHP安裝zip拓展,以及l(fā)ibzip安裝的問題
下面小編就為大家分享一篇基于PHP安裝zip拓展,以及l(fā)ibzip安裝的問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2018-03-03php5 pdo新改動(dòng)加載注意事項(xiàng)
想試試pdo怎么用,把 extension=php_pdo_mssql.dll extension=php_pdo_mysql.dll2008-09-09關(guān)于Anemometer圖形化顯示MySQL慢日志的工具搭建及使用的詳細(xì)介紹
這篇文章主要介紹了關(guān)于Anemometer圖形化顯示MySQL慢日志的工具搭建及使用的詳細(xì)介紹,Anemometer 是一個(gè)圖形化顯示MySQL慢日志的工具,Anemometer可以很輕松的幫你去分析慢查詢?nèi)罩?,讓你很容易就能找到哪些SQL需要優(yōu)化。感興趣可以來了解一下2020-07-07學(xué)習(xí)thinkphp5.0驗(yàn)證類使用方法
這篇文章主要介紹了thinkphp5.0驗(yàn)證類的簡(jiǎn)單有效的使用方法,一起學(xué)習(xí)下。2017-11-11