php檔案上傳-設定php.inn檔案以及預定義變數$_FILES
#檔案上傳可以透過 HTTP協定來實現。要使用檔案上傳功能,首先要在php.ini設定檔中對上傳做一些設置,然後了解預定義變數$_FILES, 透過$_FILES的值對上傳檔案做一些限制和判斷,最後使用move_uploaded_file()函數實現上傳!
在前面的文章中我們介紹了文件操作,讀寫以及目錄的處理和文件處理的高級應用,相關文章:
小夥伴們可以去看看,今天我們介紹PHP檔案上傳,預定義變數以及配置php.ini!
一:設定php.ini 檔案
想要順利的實作上傳功能,首要做的就是在php.ini 開啟文件上傳,並對其中的一些參數作出合理的設定。找到File Upioads 項,可以看到下面有3 個屬性,表示意義如下:
file_uploads:如果值為on,表示伺服器支援上傳檔案;如果為off,則表示不支援。
upload_tem_dir:上傳檔案暫存目錄。在檔案被成功上傳之前,檔案首先存放到伺服器端的臨時目錄,如果想要指定位置,可在這裡設置,否則使用系統預設目錄就可以了。
upload_max_filesize: 伺服器允許上傳的檔案的最大值,以MB為單位。系統預設是 2MB,使用者可以自行設定。
除了File Upolads項,還有幾個屬性也會影響到上傳檔案的功能。
max_execution_time:PHP 中一個指令所能執行的最長時間,單位是秒;
memory_limit : PHP 中一個指令所分配的沒存空間,單位是MB;
說明:
##1.如果使用整合的安裝套件來設定PHP 的開發環境,上述介紹的這些設定資訊按預設已經配置好了!
2.如果要上傳超大的文件,需要對php.ini 的一些參數進行修改,其中包括upload_max_filesize伺服器允許上傳的文件的最大值,max_execution_time 一個指令所能執行的最長時間和memory_limit一個指令所分配的記憶體空間!
二:預定義變數$_FLIES
#$_FLIES 變數儲存的事是上傳檔案的相關訊息,這些資訊對於上傳功能有很大的作用。該變數是一個二維數組。預定義變數$_FILES 元素說明如下表:元素名稱 | 說明 |
#$_FILE[filename][name] | #儲存了上傳文件的檔案名稱。如:exam.txt,myDream.jpg等 |
$_FILE[filename][size] | 儲存了檔案大小,單位為位元組。 |
$_FILE[filename][tmp_name] | #檔案上傳時, 首先在暫存目錄中被儲存成一個暫存檔案。此變數為暫存檔案名稱 |
$_FILE[filename][type] | 上傳檔案的型別。 |
$_FILE[filename][error] | 儲存了上傳檔案的結果。如果值為 0 ,表示檔案上傳成功 |
下面實例建立一個上傳檔案域,透過$_FILES變數輸出上傳的檔案資料。具體範例程式碼如下;
<html> <body> <table width="500" border="1" cellpadding="0" cellspacing="0"> <!--上传文件的 form表单,必须有 enctype 属性--> <form method="post" about="" enctype="multipart/form-data"> <tr> <td width="150" height="30" align="right" valign="middle">请选择上传文件:</td> <!--上传文件域,type类型为file--> <td width="250"><input type="file" name="upfile"></td> <!-- 提交按钮--> <td width="100"><input type="submit" name="submit" value="上传"></td> </tr> </form> </table> </body> </html> <?php header("Content-Type:text/html; charset=utf-8"); if(!empty($_FILES)){ //判断变量$_FILES是否为空 foreach ($_FILES['upfile'] as $name => $value){ //使用 foreach 循环输出上传文件信息的名称和值 echo $name,"=".$value."<br>"; } } ?>
輸出結果為:
#下一篇文章我們將介紹檔案上傳函數和多檔案上傳,具體內容請閱讀《PHP檔案上傳-move_uploaded_file()函數的使用詳解》
以上是php檔案上傳-配置php.ini檔案以及預定義變數$_FILES的詳細內容。更多資訊請關注PHP中文網其他相關文章!