php $_FILES的使用方法

來源:互聯網
上載者:User
本篇文章主要是對PHP中$_FILES的使用方法及注意事項進行了介紹,需要的朋友可以過來參考下,希望對大家有所協助

$_FILES:經由 HTTP POST 檔案上傳而提交至指令碼的變數,類似於舊數組$HTTP_POST_FILES 數組(依然有效,但反對使用)詳細資料可參閱 POST方法上傳

$_FILES數組內容如下:

$_FILES['myFile']['name'] 用戶端檔案的原名稱

$_FILES['myFile']['type'] 檔案的 MIME類型,需要瀏覽器提供該資訊的支援,例如"image/gif"

$_FILES['myFile']['size'] 已上傳檔案的大小,單位為位元組

$_FILES['myFile']['tmp_name'] 檔案被上傳後在服務端儲存的臨時檔案名稱,一般是系統預設,可以在php.ini的upload_tmp_dir指定,但用 putenv() 函數設定是不起作用的

$_FILES['myFile']['error'] 和該檔案上傳相關的錯誤碼,['error'] 是在 PHP 4.2.0版本中增加的,下面是它的說明:(它們在PHP3.0以後成了常量)

UPLOAD_ERR_OK 值:0; 沒有錯誤發生,檔案上傳成功

UPLOAD_ERR_INI_SIZE 值:1; 上傳的檔案超過了 php.ini 中 upload_max_filesize選項限制的值

UPLOAD_ERR_FORM_SIZE 值:2;上傳檔案的大小超過了 HTML 表單中 MAX_FILE_SIZE 選項指定的值

UPLOAD_ERR_PARTIAL 值:3; 檔案只有部分被上傳

UPLOAD_ERR_NO_FILE 值:4;沒有檔案被上傳, 值:5; 上傳檔案大小為0

註:

1. 檔案被上傳結束後,預設地被儲存在了臨時目錄中,這時必須將它從臨時目錄中刪除或移動到其它地方,如果沒有,則會被刪除。也就是不管是否上傳成功,指令碼執行完後臨時目錄裡的檔案肯定會被刪除。所以在刪除之前要用PHP的copy() 函數將它複製到其它位置,此時,才算完成了上傳檔案過程。

2. 在 PHP 4.1.0 版本以前該數組的名稱為 $HTTP_POST_FILES,它並不像$_FILES 一樣是自動全域變數。PHP 3 不支援 $HTTP_POST_FILES數組。

3. 用form上傳檔案時,一定要加上屬性內容enctype="multipart/form-data",否則用$_FILES[filename]擷取檔案資訊時會報異常。

<html><head><meta charset="utf-8"><title>菜鳥教程(runoob.com)</title></head><body><form action="upload_file.php" method="post" enctype="multipart/form-data"><label for="file">檔案名稱:</label><input type="file" name="file" id="file"><br><input type="submit" name="submit" value="提交"></form></body></html>

將以上代碼儲存到 form.html 檔案中。

有關上面的 HTML 表單的一些注意項列舉如下:

<form> 標籤的 enctype 屬性規定了在提交表單時要使用哪種內容類型。在表單需要位元據時,比如檔案內容,請使用 "multipart/form-data"。

<input> 標籤的 type="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.