首頁  >  文章  >  後端開發  >  php檔案上傳-配置php.ini檔案以及預定義變數$_FILES

php檔案上傳-配置php.ini檔案以及預定義變數$_FILES

黄舟
黄舟原創
2017-04-18 11:38:153721瀏覽

php檔案上傳-設定php.inn檔案以及預定義變數$_FILES

#檔案上傳可以透過 HTTP協定來實現。要使用檔案上傳功能,首先要在php.ini設定檔中對上傳做一些設置,然後了解預定義變數$_FILES, 透過$_FILES的值對上傳檔案做一些限制和判斷,最後使用move_uploaded_file()函數實現上傳!

在前面的文章中我們介紹了文件操作,讀寫以及目錄的處理和文件處理的高級應用,相關文章:

PHP文件處理-寫入文件及操作檔案

PHP目錄處理-開啟/關閉目錄

PHP目錄處理-瀏覽目錄以及操作目錄

PHP檔案處理的高階應用程式-遠端檔案存取及鎖定檔案

PHP檔案處理的進階應用程式-檔案指標

PHP檔案處理-如何讀取檔案(一行,整個檔案)

PHP檔案處理-讀取檔案(一個字符,字符串)

PHP檔案處理-開啟/關閉檔案

小夥伴們可以去看看,今天我們介紹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[&#39;upfile&#39;] as $name => $value){ //使用 foreach 循环输出上传文件信息的名称和值
        echo $name,"=".$value."<br>";
    }
}
?>

輸出結果為:

php檔案上傳-配置php.ini檔案以及預定義變數$_FILES

#下一篇文章我們將介紹檔案上傳函數和多檔案上傳,具體內容請閱讀《PHP檔案上傳-move_uploaded_file()函數的使用詳解

以上是php檔案上傳-配置php.ini檔案以及預定義變數$_FILES的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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