麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 開發 > ThinkPHP > 正文

ThinkPHP文件上傳類的分享

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

上傳類使用ORG類庫包中的Net.UpdateFile類,最新版本的上傳類包含的功能如下,有些功能需要結合ThinkPHP系統其他類庫.

1.基本上傳功能

2.支持批量上傳

3.支持生成圖片縮略圖

4. 自定義參數上傳

5.上傳檢測(包括大小、后綴和類型)

6.支持上傳類型、附件大小、上傳路徑定義

7.支持哈希或者日期子目錄保存上傳文件

8.上傳圖片的安全性檢測

9.支持上傳文件命名規則

10. 支持對上傳文件的Hash驗證

在ThinkPHP中使用上傳功能無需進行特別處理,例如,下面是一個帶有附件上傳的表單提交,代碼如下:

  1. <form METHOD=POST action=“/Manual/upload” enctype=“multipart/form-data” > 
  2. <input type=“text” NAME=“name” > 
  3. <input type=“text” NAME=“email” > 
  4. <input type=“file” name=“photo” > 
  5. <input type=“submit” value=“保 存” > 
  6. </form> 

注意表單的Form標簽中一定要添加 enctype=”multipart/form-data” 文件才能上傳,因為表單提交到當前模塊的upload操作方法,所以我們在模塊類里面添加下面的upload方法即可,代碼如下:

  1. Public function upload(){ 
  2. import(“ORG.Net.UploadFile”); 
  3. $upload = new UploadFile(); // 實例化上傳類 
  4. $upload->maxSize = 3145728 ; // 設置附件上傳大小 
  5. $upload->allowExts = array(‘jpg’, ‘gif’, ‘png’, ‘jpeg’); // 設置附件上傳類型 
  6. $upload->savePath = ‘./Public/Uploads/’; // 設置附件上傳目錄 
  7. if(!$upload->upload()) { // 上傳錯誤 提示錯誤信息 
  8. $this->error($upload->getErrorMsg()); 
  9. }else// 上傳成功 獲取上傳文件信息 
  10. $info = $upload->getUploadFileInfo(); 
  11. // 保存表單數據 包括附件數據 
  12. $User = M(“User”); // 實例化User對象Vevb.com
  13. $User->create(); // 創建數據對象 
  14. $User->photo = $info[0]["savename"]; // 保存上傳的照片 根據需要自行組裝 
  15. $User->add(); // 寫入用戶數據到數據庫 
  16. $this->success(“數據保存成功!”); 

首先是實例化上傳類,代碼如下:

import(“ORG.Net.UploadFile”);

$upload = new UploadFile(); // 實例化上傳類

實例化上傳類之后,就可以設置一些上傳的屬性(參數),支持的屬性有:

maxSize:文件上傳的最大文件大?。ㄒ宰止潪閱挝唬┠J為-1 不限大小

savePath:文件保存路徑,如果留空會取UPLOAD_PATH常量定義的路徑

saveRule:上傳文件的保存規則,必須是一個無需任何參數的函數名,例如可以是 time、 uniqid com_create_guid 等,但必須能保證生成的文件名是唯一的,默認是uniqid

hashType:上傳文件的哈希驗證方法,默認是md5_file

autoCheck:是否自動檢測附件,默認為自動檢測

uploadReplace:存在同名文件是否是覆蓋

allowExts:允許上傳的文件后綴(留空為不限制),使用數組設置,默認為空數組

allowTypes:允許上傳的文件類型(留空為不限制),使用數組設置,默認為空數組

thumb:是否需要對圖片文件進行縮略圖處理,默認為false

thumbMaxWidth:縮略圖的最大寬度,多個使用逗號分隔

thumbMaxHeight:縮略圖的最大高度,多個使用逗號分隔

thumbPrefix:縮略圖的文件前綴,默認為thumb_(如果你設置了多個縮略圖大小的話,請在此設置多個前綴).

thumbSuffix:縮略圖的文件后綴,默認為空(如果你設置了多個縮略圖大小的話,請在此設置多個后綴).

thumbPath:縮略圖的保存路徑,留空的話取文件上傳目錄本身

thumbFile:指定縮略圖的文件名

thumbRemoveOrigin:生成縮略圖后是否刪除原圖

autoSub:是否使用子目錄保存上傳文件

subType:子目錄創建方式,默認為hash,可以設置為hash或者date

dateFormat:子目錄方式為date的時候指定日期格式

hashLevel:子目錄保存的層次,默認為一層

以上屬性都可以直接設置,例如如下代碼:

  1. $upload->thumb = true 
  2. $upload->thumbMaxWidth = “50,200″ 
  3. $upload->thumbMaxHeight = “50,200″ 

其中生成縮略圖功能需要Image類的支持.

設置好上傳的參數后,就可以調用 UploadFile類的upload方法進行附件上傳,如果失敗,返回false,并且用getErrorMsg方法獲取錯誤提示信息,如果上傳成功,可以通過調用getUploadFileInfo方法獲取成功上傳的附件信息列表,因此getUploadFileInfo方法的返回值是一個數組,其中 的每個元素就是上傳的附件信息,每個附件信息又是一個記錄了下面信息的數組,包括:

key:附件上傳的表單名稱

savepath:上傳文件的保存路徑

name:上傳文件的原始名稱

savename:上傳文件的保存名稱

size:上傳文件的大小

type:上傳文件的MIME類型

extension:上傳文件的后綴類型

hash:上傳文件的哈希驗證字符串

文件上傳成功后,就可以通過這些附件信息來進行其他的數據存取操作,例如保存到當前數據表或者單獨的附件數據表都可以.

如果需要使用多個文件上傳,只需要修改表單,把XML/HTML代碼,如下:

<input type=“file” name=“photo”>

改為,XML/HTML代碼,如下:

  1. <input type=“file” name=“photo1″> 
  2. <input type=“file” name=“photo2″> 
  3. <input type=“file” name=“photo3″> 
  4.  
  5. //或者,PHP代碼 
  6.  
  7. <input type=“file”  name=“photo[]“ > 
  8. <input type=“file”  name=“photo[]“ > 
  9. <input type=“file”  name=“photo[]“ > 

兩種方式的多附件上傳系統的文件上傳類都可以自動識別.

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

圖片精選

主站蜘蛛池模板: 免费看日韩av | 欧美成人一级 | 欧美一级电影网 | 精品一区二区6 | 爱逼爱操综合网 | 天天干天天透 | 7777在线视频免费播放 | 日本高清无遮挡 | 成人爽a毛片免费啪啪红桃视频 | 国产91丝袜在线播放 | xxxxxx视频 | 欧美videofree性欧美另类 | 久久电影一区二区 | 久久久久久久黄色片 | 国产精品成人免费一区久久羞羞 | 日韩精品久久久久久 | 日本视频在线免费观看 | 日日草夜夜操 | 久色亚洲 | v天堂在线视频 | 亚洲成人欧美在线 | 91精品国产综合久久婷婷香 | 国产精品久久久久久久久久三级 | 欧美在线观看视频一区二区 | 91av网址| 国产精品久久久久久238 | 国产精品爱久久久久久久 | 中文字幕精品在线视频 | 一区二区三区日韩在线观看 | 免费日本一区二区 | 五月天影院,久久综合, | 国产一级毛片国产 | 精品久久一区二区三区 | 国产成人在线观看免费网站 | 亚洲婷婷日日综合婷婷噜噜噜 | 成人情欲视频在线看免费 | 一级毛片在线免费观看视频 | 黄色作爱视频 | 久久九九热re6这里有精品 | 久久最新免费视频 | 网站毛片|