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

首頁 > 開發 > 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:文件上傳的最大文件大小(以字節為單位)默認為-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[]“ > 

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

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

圖片精選

主站蜘蛛池模板: 宁武县| 泽普县| 抚顺县| 宾阳县| 鱼台县| 原阳县| 高清| 沐川县| 沙洋县| 高陵县| 和平区| 鲜城| 时尚| 芷江| 台南市| 连山| 永善县| 清丰县| 安吉县| 临汾市| 常德市| 石泉县| 张家港市| 昔阳县| 远安县| 桑日县| 若尔盖县| 鞍山市| 屏东市| 绍兴市| 固安县| 瑞安市| 辽阳市| 迁安市| 阳江市| 陈巴尔虎旗| 安仁县| 钟祥市| 黑水县| 金塔县| 库车县|