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

首頁 > 開發 > ThinkPHP > 正文

Thinkphp框架實現多文件上傳實現代碼

2024-09-09 15:20:15
字體:
來源:轉載
供稿:網友

直接在php中的多文件上傳我有介紹過很多并且也寫過專題了,但是在thinkphp中多文件上傳還是頭一次碰到了,那么這個thinkphp多文件上傳與php會有什么區別與共同點呢?下面我來給大家介紹一個Thinkphp框架實現多文件上傳吧,希望對各位會有點幫助.

Thinkphp手冊中對于多文件上傳描述的很清楚,如果需要使用多個文件,只需要修改表單,把如下代碼:

<input type='file' name='photo'> 改為:

  1. <li><input type='file' name='photo1'></li> 
  2. <li><input type='file' name='photo2'></li> 
  3. <li><input type='file' name='photo3'></li> 
  4. </ol> 
  5. //或者 
  6. <li><input type='file' name='photo[]'></li> 
  7. <li><input type='file' name='photo[]'></li> 
  8. <li><input type='file' name='photo[]'></li> 

暫且自己的上傳表單域為兩個,一個上傳圖片,一個上傳視頻,字段名為image、video.

html代碼如下:

圖片:<input type="file" name="image[]">

視頻:<input type="file" name="video[]">

model代碼:

  1. protected $info''
  2.  
  3. protected $_auto = array
  4. array('image','upload',3,callback),//自動完成方法 
  5. array('video','videoupload',3,callback), //自動完成方法 
  6. );//自動填充上傳圖片生成縮略圖 
  7. protected function upload(){ 
  8. $var = $_FILES['image']['name']; 
  9. import('ORG.Net.UploadFile'); 
  10. $upload = new UploadFile(); 
  11. $upload->saveRule  = time; 
  12. $upload->allowExts  = array('jpg''gif''png''zip','flv'); 
  13. $upload->thumb = true; 
  14. //視頻路徑。。。只支持flv后綴, 
  15. $upload->videopath = './Public/upload/Video/'
  16. $upload->savePath =  './Public/upload/images/'
  17. $upload->thumbPrefix = '250_115_,150_110_,213_156_'
  18. $upload->thumbMaxWidth='250,150,213'
  19. $upload->thumbMaxHeight='115,110,156'
  20. if(!in_array('',$var) || !in_array('',$_FILES['video']['name'])){ 
  21. if(!$upload->upload()) { 
  22. echo $upload->getErrorMsg();die
  23. }else
  24. $this->info =  $upload->getUploadFileInfo(); 
  25. if(!in_array('',$var) &amp;&amp; !in_array('',$_FILES['video']['name'])){ 
  26. return $this->info[1]['savename']; 
  27. }elseif(!in_array('',$var)){ 
  28. return $this->info[0]['savename']; 
  29. }else
  30. return false; 
  31.  
  32. }else
  33. return flase; 
  34. //上傳視頻 
  35. protected function videoupload(){ 
  36. if(!in_array('',$var) &amp;&amp; !in_array('',$_FILES['video']['name'])){ 
  37. return $this->info[0]['savename']; 
  38. }elseif(!in_array('',$_FILES['video']['name'])){ 
  39. return $this->info[1]['savename']; 
  40. }else//開源軟件:Vevb.com 
  41. return false; 
  42.  

文章最后我來分析一下多文件上傳原理吧,先來看看html代碼:

  1. <li><input type='file' name='photo[]'></li> 
  2. <li><input type='file' name='photo[]'></li> 
  3. <li><input type='file' name='photo[]'></li> 

這種就是把表單變量定義為數組,在php中數組特殊變量它可以存儲多個不定長的內容,所以我們就可以自定多文件上傳框了,那么在php處理時我們要如何操作,下面看例子.

  1. protected $_auto = array
  2. array('image','upload',3,callback),//自動完成方法 
  3. array('video','videoupload',3,callback), //自動完成方法 
  4. );//自動填充上傳圖片生成縮略圖 

這個是告訴thinkphp是數組變量了,并不需要像原生態的php中來判斷遍歷數組長度再一個個上傳的代碼了,因為了thinkphp己經做好了.

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 察隅县| 崇明县| 德化县| 本溪市| 娄烦县| 武隆县| 手游| 务川| 巴南区| 枣阳市| 余干县| 赤壁市| 张掖市| 山丹县| 普格县| 赣州市| 达拉特旗| 松桃| 姜堰市| 昌宁县| 乌鲁木齐市| 额敏县| 阳谷县| 屏山县| 手游| 高雄县| 大关县| 仁寿县| 蒲城县| 和林格尔县| 土默特右旗| 安溪县| 淳化县| 霍山县| 恭城| 仙桃市| 林口县| 闸北区| 登封市| 册亨县| 黄陵县|