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

來源:互聯網
上載者:User
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><?phpheader("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()函數的使用詳解》

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.