本文主要跟大家分享php上傳檔案深度解析,前面我們也跟大家分享很多php上傳檔案的文章,希望這篇文章能幫助大家。
1.php上傳檔案設定php.ini設定:
(1)file_uploads=on|off : 確定伺服器上的 PHP 腳本是否可以接受檔案上傳。
(2)max_execution_time=integer : PHP 腳本在註冊一個致命錯誤之前可以執行的最長時
#間,以秒為單位。
(3)memory_limit=integer #: 設定腳本可以分配到的最大內存,以MB為單位。這可以防
止失控的腳本獨佔伺服器記憶體。
(4)upload_max_filesize=integer :設定上傳檔案最大大小,以MB 為單位。此指令必須小
於 post_max_size。
(5)upload_tmp_dir=string : 設定上傳檔案在處理之前必須存放在伺服器的暫時一個位置,
直到檔案移動到最終目的地為止。
(6)post_max_size=integer :確定透過 POST方法可以接受的訊息的最大大小,以MB 為
單位
2.php上傳相關的方法
(##1)bool is_uploaded_file(string $filename)
定義:is_uploaded_file() 函數判斷指定的檔案是否是透過 HTTP POST 上傳的
#參數 $filename : $_FILES['file_img']['tmp_name'](範例)
規定要檢查的檔案:C:\Windows\Temp\php9632.tmp
(2)bool move_uploaded_file ( string $filename , string $destination )
##定義:
函數將上傳的檔案移到新位置 一般和is_uploaded+_file() #方法搭配使用
$filename : $_FILES['file_img']['tmp_name']
(2)file_unload_select.php 檔案用於檔案的HTML瀏覽選擇,上傳點擊:
#enctype = "multipart/form-data" #固定寫法,不然文件上傳失敗
action = "url"
method="post"# method="post"# method="post" post
#(#3##)upload.php 檔案用於處理上傳檔案 #判斷上傳檔案類型 以及 移動檔案到伺服器指定目錄:
//接收上传文件 print_r($_FILES); define('DS',DIRECTORY_SEPARATOR); //判断当前上传的文件是否为图片 $img_type_arr = array('image/png','image/jpeg','image/jpeg'); //for循环遍历数组 -- 第一方法判断是否为数组中的子项 for($i=0;$i<count($img_type_arr);$i++) { if($img_type_arr[$i] != $_FILES['file_img']['type'] && ($i == count($img_type_arr)-1) ) { echo "" exit; } } //数组方法array_in() -- 第二方法判断是否为数组中的子项 if(!is_uploaded_file($_FILES['file_img']['tmp_name'])) { //如果临时文件不存在,则说明没有上传到临时文件夹 echo '上传到临时文件夹失败'; } else { //echo '上传到临时文件夹成功'; $img_path = dirname(__FILE__).DS.'uploads'.DS.$_FILES['file_img']['name']; //echo $img_path; //进行移动文件到服务器地址 if(@move_uploaded_file($_FILES['file_img']['tmp_name'],$img_path)) { //显示图片 echo "<img src=".$img_path." />" } else { cho '移动文件失败'; } }
(4)##show_image.php 用來接收圖片檔案路徑顯示上傳成功的圖片:
$img_path = $_GET['url']; echo "";
(5)上傳最核心的就是利用$_FILES的子項參數,完成上傳與判斷:
Array ( [file_img] => Array ( [name] => news_001_01.jpg [type] => image/jpeg [tmp_name] => C:\Windows\Temp\php504D.tmp [error] => 0 [size] => 158360 ) )##分析:
##$_FILES['file_img']['name'] : news_001_01.jpg
上傳檔案名稱#$_FILES['file_img'][ 'type'] : image/jpeg
上傳檔案的類型$_FILES['file_img'][' tmp_name '] : C:\Windows\Temp\ php504D.tmp
此上傳檔案暫存檔案的存放路徑$_FILES['file_img']['error '] : 0 , 1, 2, 3, 4
# #0 -> 表示已成功上傳內容
## 1 -> 檔案的大小超出了約定值(PHP.ini
#指定) 2 -> 表示上傳檔案的大小超出了約定值(HTML
表單指定) 3 ->
表示檔案只部分上載 4 ->
表示任何檔案
#### php上傳檔案的簡單程式碼######以上是php上傳文件深度解析的詳細內容。更多資訊請關注PHP中文網其他相關文章!