本文目錄一覽:
php上傳圖片文件常用的幾個方法
你好,要先建立一個html代碼
form action=”upload_file.php” method=”post”
enctype=”multipart/form-data”
label for=”file”Filename:/label
input type=”file” name=”file” id=”file” /
br /
input type=”submit” name=”submit” value=”Submit” /
/form
然後創建upload_file文件用$_FILE判斷文件,下面是判斷文件的具體信息
$_FILES[“file”][“name”] – 被上傳文件的名稱
$_FILES[“file”][“type”] – 被上傳文件的類型
$_FILES[“file”][“size”] – 被上傳文件的大小,以字節計
$_FILES[“file”][“tmp_name”] – 存儲在服務器的文件的臨時副本的名稱
$_FILES[“file”][“error”] – 由文件上傳導致的錯誤代
希望對你有幫助!
如何通過配置php文件限制上傳文件的大小
在網站開發的過程中,為了確保能夠充分利用服務器的空間,在開發上傳功能時,必須對上傳文件的大小進行控制。那麼我們如何進行對上傳文件的大小進行控制呢?
控制文件的大小可以從兩個方面入手:
第一個是在PHP的配置文件php.ini中對上傳文件進行控制,如果上傳文件超過它指定的範圍,那麼執行上傳就會識別。
第二個是在PHP配置文件允許的範圍內,在程序中對上傳文件的大小進行控制!
一:通過配置文件控制上傳文件
PHP中通過php.ini文件對上傳文件進行控制,包括是否支持上傳,上傳文件的臨時文件目錄,上傳文件的大小,指令執行時間,指令分配的內存空間。
在php.ini中,定義 File Uploads項,完成對上傳相關選項的設置。上傳相關選項的含義如下:
file_uploads:如果值是 no,說明服務器支持上傳文件,如果為off ,那麼則不支持。一般默認是支持的,這個不用修改!
upload_tmp_dri:上傳文件臨時目錄。文件被成功上傳之前,文件首先存放到服務器端的臨時目錄中。多數使用系統默認目錄,但是也可以自行設置!
upload_max_filesize:服務器允許上傳文件的最大值,以MB為單位,系統默認為2MB,如果網站需要上傳超過2MB的數據,那麼就要修改這個值!
上述是php.ini中 File_Uploads項中與上述相關參數設置說明,除了File_Uploads項中的內容外,在php.ini中還有其他幾個選項會影響到文件的上傳~
max_execution_time:PHP中一個指令所能執行的最大時間,單位為秒。該選項在上傳超大文件時必須要修改,否則即使上傳文件在服務器允許的範圍內,但是若超過了指令所能執行的最大時間,仍然無法實現上傳~
memory_limit:PHP中一個指令所分配的內存空間,單位是 MB 。它的大小同樣會影響得到超大文件的上傳!
二:在程序中控制上傳文件
在客戶端控制上傳文件應用的是 form 表單中的 enctype 和 method屬性以及隱藏域 MAX_FILE_SIZE。
enctype = “multipart/form-data”:指定表單編碼數據方式。
method = “post”:指定數據的傳輸方式。
input type = “hidden” name=”MAX_FILE_SIZE” value=“10000”/:通過隱藏域控制上傳文件的大小(單位為字節),該值不能超過php.ini配置文件中 upload_max_filesize 選項設置的值,它不能喝完全控制上傳文件的大小。只是可以避免一些不必要的麻煩。
技巧:
在應用隱藏域input type = “hidden” name=”MAX_FILE_SIZE” value=“10000”/控制文件上傳大小時,必須將其放置在文件域之前,否則是不能發揮作用的!
如何在php上實現文件上傳功能
PHP 一般使用 POST 方法上傳文件,下面是一個簡單的文件上傳示例,裡面有相關的注釋:
up.htm 文件:
———-
html
head
meta http-equiv=”Content-Type” content=”text/html; charset=gb2312″
titleUp Sample/title
/head
body
form action=”up.php” method=”post” enctype=”multipart/form-data”
!–備註:表單中 enctype=”multipart/form-data ” 的意思,是設置表單的 MIME 編碼。默認情況,這個編碼格式是application/x-www-form-urlencoded,不能用於文件上傳;只有使用了 multipart/form-data ,才能完整的傳遞文件數據,進行下面的操作,並且 method 要設置為 “post”–
File:br /
input type=”file” name=”upfile” size=”30″br /
!–上傳框要設置 type=”file”–
br /
input type=”submit” value=”Upload”
/form
/body
/html
———-
up.php 文件
———-
?php
if (is_uploaded_file($_FILES[“upfile”][“tmp_name”])){
//如果有文件上傳
//is_uploaded_file — 判斷文件是否是通過 HTTP POST 上傳的,返回布爾值
//$_FILES[‘upfilename’][‘…’],其中的 ‘upfilename’ 即為上傳框的 name 屬性
//$_FILES[‘upfile’][‘tmp_name’] — 文件被上傳後在服務端儲存的臨時文件名,一般是系統默認
if(!eregi(‘pdf’, $_FILES[‘upfile’][‘type’])){
//我們這裡假設你要上傳一個 pdf 文件
//if(!eregi(‘pdf’, $_FILES[‘upfile’][‘type’])) 這個是判斷上傳文件類型的,是不是 pdf 文件,當然,若是想判斷是否是 jpg 文件的話,將 pdf 改成 jpg 就可以了,即 if(!eregi(‘jpg’, $_FILES[‘upfile’][‘type’]))
//$_FILES[‘upfile’][‘type’] 是文件的 MIME 類型,如果瀏覽器提供此信息的話。例如“image/gif”
echo ‘The uploaded file is not an pdf File! Please upload a right file!’;
}else{
$filename = $_FILES[‘upfile’][‘name’];
//$filename = $_FILES[‘upfile’][‘name’],這裡是指定上傳後的文件名,這裡使用的仍是原來的文件名字,($_FILES[‘upfile’][‘name’] 是原始文件的名字)
if(move_uploaded_file($_FILES[“upfile”][“tmp_name”], dirname(__FILE__).”/upload_file/”.$filename)){
//這裡就是上傳文件
//dirname(__FILE__).”/upload_file/”.$file_name — 指定上傳的目標文件,假設你要上傳的目標文件夾upload_file 是和當前文件(upload.php)在同一文件夾下
//chmod(dirname(__FILE__).”/upload_file/”. $file_name, 0444);
//上面注釋掉的是用來改變上傳後文件的屬性,444 即只有執行和讀的權限(看情況加上)
echo $_FILES[“upfile”][“name”] . ” uploaded succeed!!!”;
}else{
echo “Can’t upload!!!”;
}
}
}else{
echo “File is not selected”;
}
//需要注意的:
/*
在你的 up.php 同級目錄下建立 upload_file 文件夾,來存放上傳的文件
在上傳之前要看一下 php 的配置文件:php.ini 中的三處設置
1.是否允許文件上傳:( file_uploads = On )
2.文件上傳的最大 size:( upload_max_filesize )
3.post 的最大 size ( post_max_size ) 這個大小設置成和 uplod_max_filesize 一樣大或比 uplod_max_filesize 大
*/
/*
這只是很簡單的一個文件上傳的例子,為了幫助理解,只是判斷了一下上傳文件的類型,還可以使用 if 語句來判斷上傳文件的大小($_FILES[‘upfile’][‘type’])),並進行提示控制等,相關可以查閱 $_FILE[‘upfile’] 數組的各個值分別代表什麼
*/
?
原創文章,作者:TDES,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/139079.html