php 檔案上傳

2021-05-21 22:56:48 字數 1921 閱讀 8296

在php中,檔案上傳一般是通過move_uploaded_file()來實現的。

bool move_uploaded_file ( string filename, string destination )本函式檢查並確保由 filename 指定的檔案是合法的上傳檔案(即通過 php 的 http post 上傳機制所上傳的)。如果檔案合法,則將其移動為由 destination 指定的檔案。

如果 filename 不是合法的上傳檔案,不會出現任何操作,move_uploaded_file() 將返回 false。

如果 filename 是合法的上傳檔案,但出於某些原因無法移動,不會出現任何操作,move_uploaded_file() 將返回 false。此外還會發出一條警告。

下面我們通過乙個例項來說明php是如何實現檔案上傳的。

test.php 的原檔案

max_file_size 隱藏字段(單位為位元組)必須放在檔案輸入字段之前,其值為接收檔案的最大尺寸。這是對瀏覽器的乙個建議,php 也會檢查此項。在瀏覽器端可以簡單繞過此設定,因此不要指望用此特性來阻擋大檔案。實際上,php 設定中的上傳檔案最大值是不會失效的。但是最好還是在表單中加上此專案,因為它可以避免使用者在花時間等待上傳大檔案之後才發現檔案過大上傳失敗的麻煩。

注: 要確保檔案上傳表單的屬性是 enctype="multipart/form-data",否則檔案將無法上傳。

在處理上傳頁面中,上傳檔案的資訊是通過陣列 $_files 來獲取的。我們假設檔案上傳欄位的名稱如上例所示,為 "upfile",則檔案資訊為:

$_files['upfile']['name']

上傳檔案的原檔名。

$_files['upfile']['type']

檔案的 mime 型別,如果瀏覽器提供此資訊的話。乙個例子是「image/gif」。不過此 mime 型別在 php 端並不檢查,因此不要想當然認為有這個值。

$_files['upfile']['size']

上傳檔案的大小,單位為位元組。

$_files['upfile']['tmp_name']

檔案上傳後在服務端儲存的臨時檔名。

$_files['upfile']['error']

和該檔案上傳相關的錯誤**。

php 將隨檔案資訊陣列一起返回乙個對應的錯誤**。該**可以在檔案上傳時生成的檔案陣列中的 error 欄位中被找到。**如下:

upload_err_ok

其值為 0,檔案上傳成功。

upload_err_ini_size

其值為 1,上傳的檔案超過了 php.ini 中 upload_max_filesize 選項限制的值 ,預設值為2m。 如果要想上傳更大的,我們可以在php.ini裡查詢 upload_max_filesize = 2m 修改後即可生效。

upload_err_form_size

其值為 2,上傳檔案的大小超過了 html 表單中 max_file_size 選項指定的值。

upload_err_partial

其值為 3,檔案上傳不完全,只有部分被上傳。

upload_err_no_file

其值為 4,檔案上傳失敗。

upload_err_no_tmp_dir

其值為 6,找不到臨時資料夾。php 4.3.10 和 php 5.0.3 引進。

upload_err_cant_write

其值為 7,檔案寫入失敗。php 5.1.0 引進。

注: 以上值在 php 4.3.0 之後變成了 php 常量。

action.php 的原**

一定要確保上傳後檔案所在的資料夾的許可權至為 777 ,這點在伺服器上體現的特別明顯,有時我們編寫的上傳**沒有任何的錯誤,然而在網上卻無法實現上傳功能,原因就在這裡。

檔案型別:

text/plain  文字

image/x-png 

php mysql上傳檔案 PHP 檔案上傳

通過 php,可以把檔案上傳到伺服器。建立乙個檔案上傳表單 允許使用者從表單上傳檔案是非常有用的。請看下面這個供上傳檔案的 html 表單 芝麻教程 web3.xin 檔名 將以上 儲存到 form.html 檔案中。有關上面的 html 表單的一些注意項列舉如下 標籤的 enctype 屬性規定了...

PHP檔案上傳

最近在寫關於php上傳影象檔案,寫了一整星期,還是不怎麼清楚其中原理,在此也只能把一些表象小結小結。php上傳檔案,是通過表單上傳的 注意得把form標籤的enctype屬性賦值multipart form date 先從客戶端把檔案上傳到伺服器 這怎麼傳上去的不清楚 再在伺服器上覆制到其他位址,開...

php上傳檔案

1 form標籤enctype屬性 2 files 系統函式 3 move uploaded file函式 4 is uploaded file 函式 files 系統函式 files myfile name 客戶端檔案的原名稱。files myfile type 檔案的 mime 型別,例如 im...