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

首頁(yè) > 學(xué)院 > 開(kāi)發(fā)設(shè)計(jì) > 正文

從零開(kāi)始編寫(xiě)自己的C#框架(23)——上傳組件使用說(shuō)明

2019-11-17 01:37:58
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

從零開(kāi)始編寫(xiě)自己的C#框架(23)——上傳組件使用說(shuō)明

  文章導(dǎo)航


  1、前言

  2、上傳組件功能說(shuō)明

  3、數(shù)據(jù)庫(kù)結(jié)構(gòu)

  4、上傳配置管理

  5、上傳組件所使用到的類

  6、上傳組件調(diào)用方法

  7、效果演示

  8、小結(jié)


  1、前言

  本系列所使用的是上傳組件是大神July開(kāi)發(fā)的,他為人比較低調(diào),一直都沒(méi)有寫(xiě)博。為了感謝他將這么好的插件開(kāi)源出來(lái),在這里簡(jiǎn)單的為他宣傳一下。在我的圈子當(dāng)中,他是一位非常牛的人,前端方面非常精通,沒(méi)有解決不了的兼容性問(wèn)題,而后端開(kāi)發(fā)又精通多種開(kāi)發(fā)語(yǔ)言(php、C#、VB、java等),經(jīng)手開(kāi)發(fā)過(guò)的大中小型項(xiàng)目過(guò)百。承接各種外包開(kāi)發(fā),想聯(lián)系他的話可以加入Q群327360708找July。

  2、上傳組件功能說(shuō)明

  本上傳組件已將上傳相關(guān)的功能都封裝好了,在使用的時(shí)候,只需要使用簡(jiǎn)單的幾行代碼,就可以實(shí)現(xiàn)圖片文件檢驗(yàn)、上傳權(quán)限驗(yàn)證、上傳路徑相關(guān)文件夾創(chuàng)建、文件上傳、按配置生成各種規(guī)格(縮放)圖片和進(jìn)行壓縮、加水印、關(guān)聯(lián)數(shù)據(jù)表、自動(dòng)刪除舊文件與數(shù)據(jù)表記錄、修改配置后所有圖片文件重新生成等功能。

  支持asp.net控件、html控件、編輯器(又分為本地上傳與遠(yuǎn)程上傳兩種)與swf(這種控件上傳方式?jīng)]有用過(guò),目前還不太清楚怎么調(diào)用,等有空再請(qǐng)教July大神)等方式上傳。

  3、數(shù)據(jù)庫(kù)結(jié)構(gòu)

  本上傳組件需要?jiǎng)?chuàng)建三個(gè)數(shù)據(jù)表

  上傳類型表用于設(shè)置可以上傳的文件類型

  

  上傳配置表,它的用途大家看看字段說(shuō)明就知道了,而我們主要將它用在上傳圖片的處理上,比如上傳一張圖片要生成那些格式(大、中、小與推薦圖),圖片規(guī)格是什么(寬、高與質(zhì)量),用不用加水印,按什么比例生成等,在這里配置后馬上生效,上傳生成的圖片規(guī)格跟著改變。

  

  上傳文件管理表記錄當(dāng)前系統(tǒng)中,所有通過(guò)本上傳組件上傳到服務(wù)器中的文件信息,方便管理員進(jìn)行管理操作,比如前端UI重新設(shè)計(jì)后,某些頁(yè)面圖片規(guī)格改變了,正常情況下需 要設(shè)計(jì)師手動(dòng)或使用某些軟件將這些圖片全部重新修改,這樣處理工作量大且容易出錯(cuò),而本組件則可以通過(guò)在上傳配置中重新設(shè)置不同大小的圖片生成規(guī)格,然后點(diǎn)擊全部圖片重新生成按鈕后,程序就會(huì)在本管理表中將指定類型與配置的所有圖片按新配置,使用原來(lái)的文件名稱逐個(gè)重新生成出來(lái)。

  

  4、上傳配置管理

  1)進(jìn)入后端管理系統(tǒng),系統(tǒng)管理=》基礎(chǔ)設(shè)置=》上傳類型設(shè)置

  在這里添加與管理各種允許上傳的文件類型,見(jiàn)下圖

  

  

  2)系統(tǒng)管理=》基礎(chǔ)設(shè)置=》上傳配置管理

  在這里設(shè)置上傳的各種規(guī)則,所有需要調(diào)用到上傳組件的地方,都需要這里進(jìn)行配置。創(chuàng)建好以后獲取對(duì)應(yīng)的Id值,在開(kāi)發(fā)的代碼中綁定記錄,具體怎么使用后面會(huì)講到

  上傳配置列表

  

  上傳配置編輯頁(yè)面

  

  廣告內(nèi)容管理頁(yè)面,我們上傳了一個(gè)廣告圖片

  

  這是上傳成功后,在上傳文件夾中對(duì)應(yīng)生成的圖片,大家可以試試修改生成規(guī)格后重新上傳,或點(diǎn)擊“已上傳文件管理”頁(yè)面中的,看看圖片變化

  

  3)系統(tǒng)管理=》基礎(chǔ)設(shè)置=》已上傳文件管理

  在這里顯示所有通過(guò)本上傳組件上傳到服務(wù)器的所有記錄,可以將直接將一些不要的文件刪除,也可以點(diǎn)擊“圖片全部重新生成”按鈕生成圖片。

  

  5、上傳組件所使用到的類

  上傳組件所用的的類存放路徑與說(shuō)明(原版雖然分層,但沒(méi)這么多文件,使用SQLHelper來(lái)執(zhí)行數(shù)據(jù)庫(kù)更新,被我改得好像很復(fù)雜的樣子,呵呵...看起來(lái)是不是有點(diǎn)高大上,很難理解兼很復(fù)雜的樣子+_+...)

項(xiàng)目文件夾路徑文件名說(shuō)明
DotNet.UtilitiesFileDirFileHelper.cs文件夾與文件操作類,主要用于文件夾創(chuàng)建、上傳文件添加、刪除,以及其他相關(guān)的文件操作函數(shù)
DotNet.UtilitiesUploaderUploader.cs上傳類,文件上傳、檢查、生成、水印等各種操作
Solution.DataaccessSubSonic

UploadConfig.cs

UploadFile.cs

UploadType.cs

......

模板生成的上傳組件數(shù)據(jù)表相關(guān)實(shí)體類,以及其他數(shù)據(jù)層操作類
Solution.Logic.ManagersapplicationUploadFileBll.cs上傳邏輯類,主要用于權(quán)限檢查、上傳文件的相關(guān)判斷處理、增改刪上傳組件相關(guān)的數(shù)據(jù)庫(kù)信息、關(guān)聯(lián)相關(guān)數(shù)據(jù)表等功能
Solution.Logic.ManagersSubSonic

UploadConfigBll.cs

UploadFileBll.cs

UploadTypeBll.cs

T4模板生成的幾個(gè)上傳表對(duì)應(yīng)的邏輯類文件,主要給第4點(diǎn)那些后端管理頁(yè)面所使用
Solution.Web.ManagersApplicationFileUpload.ashxUI層編輯器調(diào)用的上傳接口
Solution.Web.ManagersApplicationRemoteUpload.ashxUI層編輯器使用遠(yuǎn)程上傳接口(在編輯器上粘貼有圖片時(shí),將圖片下載到服務(wù)器上,實(shí)現(xiàn)遠(yuǎn)程上傳)

  6、上傳組件調(diào)用方法

  代碼中有三種調(diào)用上傳的方法,一種是ASP.NET控件,一種是html控件,還有是遠(yuǎn)程上傳(即傳入遠(yuǎn)程圖片Url自動(dòng)下載更新)

  ASP.NET控件上傳調(diào)用方法

 1 //這個(gè)放在cs文件Page_Load函數(shù)的前面,用于生成一個(gè)隨一個(gè)Key,以便上傳完成后已上傳文件管理表綁定對(duì)應(yīng)Id 2 PRotected string RndKey = RandomHelper.GetRndKey(); 3  4                 #region 上傳圖片 5                 //判斷前端的ASP.NET上傳控件是否選擇有上傳文件 6                 if (this.filePhoto.HasFile && this.filePhoto.FileName.Length > 3) 7                 { 8                     //將當(dāng)前頁(yè)面上傳文件綁定上傳配置表Id為7的記錄,給上傳組件的邏輯層函數(shù)調(diào)用 9                     int vid = 7; //7    廣告10                     //---------------------------------------------------11                     //創(chuàng)建上傳實(shí)體12                     var upload = new UploadFile();13                     //調(diào)用ASP.NET上傳控件上傳函數(shù),并獲取上傳成功或失敗信息14                     result = new UploadFileBll().Upload_AspNet(this.filePhoto.PostedFile, vid, RndKey,15                         OnlineUsersBll.GetInstence().GetManagerId(), OnlineUsersBll.GetInstence().GetManagerCName(),16                         upload);17                     this.filePhoto.Dispose();18                     //---------------------------------------------------19                     //沒(méi)有返回信息時(shí)表示上傳成功20                     if (result.Length == 0) 21                     {22                         //將上傳到服務(wù)器后的路徑賦給廣告實(shí)體對(duì)應(yīng)字段23                         model.AdImg = upload.Path;24                     }25                     else26                     {27                         //將出錯(cuò)寫(xiě)入日志中28                         CommonBll.WriteLog("上傳出錯(cuò):" + result); //收集異常信息29                         //彈出出錯(cuò)提示30                         return "上傳出錯(cuò)!" + result;31                     }32                 }33                 //如果是修改,檢查用戶是否重新上傳過(guò)廣告圖片,如果是刪除舊的圖片34                 if (model.Id > 0)35                 {36                     //刪除舊圖片37                     UploadFileBll.GetInstence()38                         .Upload_DiffFile(AdvertisementTable.Id, AdvertisementTable.AdImg, AdvertisementTable.TableName,39                             model.Id, model.AdImg);40 41                     //同步UploadFile上傳表記錄,綁定剛剛上傳成功的文件Id為當(dāng)前記錄Id42                     UploadFileBll.GetInstence().Upload_UpdateRs(RndKey, AdvertisementTable.TableName, model.Id);43                 }44 45                 #endregion

  上面代碼功能大家請(qǐng)看注釋說(shuō)明,在調(diào)用時(shí)直接復(fù)制上面代碼然后修改vid的值、頁(yè)面上傳控件名稱(filePhoto改為你自己設(shè)置的名稱)、當(dāng)前數(shù)據(jù)表名稱(AdvertisementTable,這個(gè)一般在替換的時(shí)候已經(jīng)改好了)和存放上傳文件路徑字段(AdImg改為當(dāng)前數(shù)據(jù)表對(duì)應(yīng)字段名稱)就可以了。

  html控件上傳方法

 1                 #region 上傳圖片 2                 //將當(dāng)前頁(yè)面上傳文件綁定上傳配置表Id為7的記錄,給上傳組件的邏輯層函數(shù)調(diào)用 3                 int vid = 7; //7    廣告 4                 //--------------------------------------------------- 5                 //創(chuàng)建上傳實(shí)體 6                 var upload = new UploadFile(); 7                 //調(diào)用ASP.NET上傳控件上傳函數(shù),并獲取上傳成功或失敗信息 8                 result = new UploadFileBll().Upload_Web(vid, RndKey, 9                     OnlineUsersBll.GetInstence().GetManagerId(), OnlineUsersBll.GetInstence().GetManagerCName(),10                     upload, "Html上傳控件名稱");11                 this.filePhoto.Dispose();12                 //---------------------------------------------------13                 //沒(méi)有返回信息時(shí)表示上傳成功14                 if (result.Length == 0)15                 {16                     //將上傳到服務(wù)器后的路徑賦給廣告實(shí)體對(duì)應(yīng)字段17                     model.AdImg = upload.Path;18                 }19                 else20                 {21                     //將出錯(cuò)寫(xiě)入日志中22                     CommonBll.WriteLog("上傳出錯(cuò):" + result); //收集異常信息23                     //彈出出錯(cuò)提示24                     return "上傳出錯(cuò)!" + result;25                 }26                 27                 //如果是修改,檢查用戶是否重新上傳過(guò)廣告圖片,如果是刪除舊的圖片28                 if (model.Id > 0)29                 {30                     //刪除舊圖片31                     UploadFileBll.GetInstence()32                         .Upload_DiffFile(AdvertisementTable.Id, AdvertisementTable.AdImg, AdvertisementTable.TableName,33                             model.Id, model.AdImg);34 35                     //同步UploadFile上傳表記錄,綁定剛剛上傳成功的文件Id為當(dāng)前記錄Id36                     UploadFileB
發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 临邑县| 新邵县| 宝坻区| 丽江市| 陇川县| 长阳| 西丰县| 双峰县| 南陵县| 和林格尔县| 新昌县| 红桥区| 旬阳县| 紫云| 无棣县| 繁峙县| 嘉善县| 海口市| 礼泉县| 松桃| 易门县| 鲁甸县| 漳州市| 房山区| 镇原县| 合山市| 怀化市| 东阿县| 绥阳县| 会东县| 兴宁市| 新泰市| 桐柏县| 林甸县| 右玉县| 神木县| 资溪县| 秦皇岛市| 克什克腾旗| 阆中市| 文水县|