国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 語言 > PHP > 正文

PHP中上傳多個文件到服務器實例

2024-09-04 11:44:51
字體:
來源:轉載
供稿:網友

實例說明

上傳圖片到服務器,是程序開發過程中必不可少的一個功能,它不但可以達到圖片共享的目的,而且可以提高網站的訪問量,豐富網站的內容,在本實例中,講解如何通過POST方式實現多圖片上傳.

關鍵技術

多文件上傳的關鍵是如何定義上傳文件元素的名稱及如何判斷上傳文件的數量,在本實例中,以數組的形式定義上傳文件的名稱,上傳文件的名稱是“files[]”,為了達到可以上傳任意數量圖片,4個圖片以內的目的,在對上傳文件進行處理的過程中應用array_filter()函數和回調函數去除數組中的空元素.

array_filter()函數,用回調函數過濾數組中的單元,語法如下:

array array_filter(array input[,callback callback])

array_filter()函數依次將input數組中的每個值傳遞到callback函數,如果callback函數返回TRUE,則input數組的當前值會被包含在返回的結果數組中,并且數組的鍵名保留不變.

說明:在回調函數中不要對數組進行修改操作,例如,增加或者刪除數組中的元素,如果一旦數組改變,那么此函數的運用也就沒有意義了,如果沒有提供callback()函數,array_filter()將刪除input中本實例中定義的回調函數是check(),用于驗證數組中的元素值是否為空,其語法如下:

  1. function check($var){//驗證數組的返回值是否為空 
  2.           return($var!=""); 

說明:通過POST方法實現多圖片上傳,在創建form表單時,必須指定enctype="multipart/form-data"屬性,如果要通過隱藏域MAX_FILE_SIZE的值對上傳文件的大小進行控制,那么必須將隱藏放置在上傳文件的文件域之前,否則是不會起作用的.

設計過程

(1)創建index.php文件,添加表單,設置文件域、提交按鈕,使用POST方法,設置enctype="multipart/form-data",將數據提交到index_ok.php頁,完成多個文件的上傳操作,其關鍵代碼如下:

  1. <table width="750"border="0"cellspacing="0"cellpadding="0"> 
  2.         <form action="index_ok.html"method="post"enctype="multipart/form-data"name="form1"> 
  3.            <tr> 
  4.              <td width="100"height="25"align="right"class="STYLE1">內容1:</td> 
  5.              <td width="150"align="center"><input name="files[]"type="text"id="files[]"size="15"></td> 
  6.              <td align="left"><input name="picture[]"type="file"id="pcture[]"size>="30"></td> 
  7.            </tr> 
  8.            <tr> 
  9.              <td height="25"align="right"class="STYLE1">內容2:</td> 
  10.              <td width="center"><input name="files[]"type="text"id="files[]"size="15"></td> 
  11.              <td align="left"><input name="picture[]"type="file"id="pcture[]"size>="30"></td> 
  12.            </tr> 
  13.          <tr> 
  14.             <td colspan="3"align="center"> 
  15.                  <input type="image"name="imageField"src="images/bg_09.jpg">&nbsp;&nbsp;&nbsp;&nbsp; 
  16.                  <input type="image"name="imgeField2"src="images/bg_11.jpg"></td> 
  17.             </tr> 
  18.           </form> 
  19.          </table> 

(2)在index.php文件中,連接數據庫,讀取數據庫中存儲的數據,實現上傳文件的分頁輸出,代碼請參考相關內容.

(3)創建index.php文件獲取表單中提交的數據,將多個文件存儲到服務器中,將文件的名稱和存儲路徑存儲到數據庫中,其代碼如下:

  1. <?php 
  2.     header("Content-type:text/html;charset=UTF-8");     //設置文件編碼格式 
  3.     include"conn/conn.php";                             //包含數據庫鏈接文件 
  4.     if($_POST[files]!=""){ 
  5.           if(! is_dir("./upfile")){ 
  6.                   mkdir("./upfile");                    //創建上傳文件存儲文件夾 
  7.           } 
  8.           $data=date("Y-m-d H:m:s");                    //定義時間 
  9.           function check($var){                         //驗證數組的返回值是否為空 
  10.                      return($var!="");                  //如果不為空則返回數組元素 
  11.           } 
  12.           $files=array_filter($_POST["files"],"check");  //去除數組中空值 
  13.           $array=array_filter($_FILES["picture"]["name"],"check"); //去除數組中空值 
  14.           foreach=($aarray as $key=>value){             //循環讀取數組中數據 
  15.                  $path='upfile/'.time().$key.strtolower(strstr($value,".")); //定義上傳文件存儲位置 
  16.                  move_uploaded_file($_FILES["picture"]["tmp_name"][$key],$path);  //執行上傳操作 
  17.                  $query="insert into tb_up_file(file_test,data,file_name)values('$path','$data''$files[$key]')"
  18.                  $result=mysql_query($query); 
  19.           } 
  20.           echo"<script> 
  21.           alert('圖片上傳成功');window.location.href='index.html';</script>"; 
  22.          } 
  23.          ?> 

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 介休市| 宁城县| 石河子市| 肥乡县| 蓬溪县| 合水县| 四平市| 盐池县| 九龙坡区| 信丰县| 社旗县| 湘乡市| 清河县| 广东省| 伊吾县| 浑源县| 金门县| 沙坪坝区| 布拖县| 双峰县| 通道| 绍兴县| 固原市| 威海市| 阳曲县| 竹山县| 区。| 大渡口区| 宁安市| 县级市| 游戏| 河东区| 明溪县| 西贡区| 察雅县| 陆良县| 徐汇区| 额济纳旗| 吴旗县| 小金县| 墨竹工卡县|