日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

[项目过程中所遇到的各种问题记录]编辑器篇——FCKeditor自定义上传路径配置...

發(fā)布時(shí)間:2023/12/20 编程问答 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 [项目过程中所遇到的各种问题记录]编辑器篇——FCKeditor自定义上传路径配置... 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

????? 在上一篇文章中,我介紹了FCKeditor的一些相關(guān)知識(shí)以及我在使用過程中碰到的一些問題及解決方案,今天這篇?jiǎng)t是主要記錄如何通過FCKeditor來分類管理上傳的文件。

以下是本文所要介紹的內(nèi)容:

1、FCKeditor上傳文件分析

2、FCKeditor上傳文件路徑分類配置實(shí)現(xiàn)

?

一、FCKeditor上傳文件分析

???? 使用過FCKeditor的朋友肯定都知道,FCKeditor的文件上傳的文件都是保存在自定義的目錄下,而且保存的目錄僅僅按照文件類型進(jìn)行了劃分,只有4個(gè):file、flash、image和media(FCKeditor有內(nèi)置的管理器可以自由建立文件夾,但是由于并不安全所以這塊被我關(guān)閉掉了,用戶所要做的事情就是上傳),而實(shí)際的應(yīng)用過程中我們不可能將這些同類型的文件放在一個(gè)文件夾下,我們需要有特殊的邏輯來存放,比如:新聞相關(guān)文件是按照月份來存放、博客資源是按照博主的用戶名來存放等等,這時(shí)FCKeditor的基本上就滿足不了我這個(gè)需求了,所以就需要研究FCKeditor的源碼進(jìn)行簡(jiǎn)單修改來達(dá)到我們的目的。

???? FCKeditor主要由2部分組成,一部分就是FCKeditor的HTML包,包含了JS、HTML頁(yè)面主要負(fù)責(zé)與客戶端的交互,而另一部分就是具體的C#程序集FredCK.FCKeditorV2。

其中FCKeditor的上傳部分主要也分2個(gè)部分:

1、面向客戶端UserControl——config.ascx(存放于fckeditor\editor\filemanager\connectors\aspx\下)

2、服務(wù)器端負(fù)責(zé)上傳的具體類:FredCK.FCKeditorV2.FileBrowser.Config.cs

先看下FredCK.FCKeditorV2中的類關(guān)系圖:

這張類圖中有關(guān)上傳文件的類主要有3個(gè)FileWorkerBase、TypeConfig和Config,下面分別來介紹下這3個(gè)類:

1、FileWorkerBase,一個(gè)抽象類,主要負(fù)責(zé)文件管理,其中有關(guān)文件上傳的主要是FileUpload(負(fù)責(zé)文件上床)和ServerMapFolder(定位服務(wù)器上路徑地址)這2個(gè)方法(具體有關(guān)內(nèi)容可以自行查看源碼)。

2、TypeConfig,這個(gè)類主要用于輔助FileWorkerBase,為FileWorkerBase提供所需路徑。

3、Config,用戶控件的具體后臺(tái)類,負(fù)責(zé)與前臺(tái)用戶控件交互。

本來我的設(shè)想是通過FCKeditor自身的類來實(shí)現(xiàn)的,這樣只需在實(shí)際頁(yè)面控件上設(shè)置相應(yīng)的屬性既可,可惜在實(shí)際的研究過程中發(fā)現(xiàn)不可行,因?yàn)镕CKeditor有關(guān)文件管理這塊是和其控件類是分開的,文件的上傳需要通過FileWorkerBase來實(shí)現(xiàn),所以FCKeditor控件上配置的屬性在FileWorkerBase是無法獲取到的,所以還是得從上面所說的3個(gè)類來做文章。

?

二、FCKeditor上傳文件路徑分類配置實(shí)現(xiàn)

???? 現(xiàn)在就要相辦法來實(shí)現(xiàn)上傳文件路徑的配置,首先我們可以知道FileWorkerBase.FileUpload這個(gè)方法是用來上傳文件的,其中:

string sServerDir = this.ServerMapFolder(resourceType, currentFolder, isQuickUpload);

這句代碼是用來獲取保存的路徑,知道了這點(diǎn)我們就可以想辦法把currentFolder這個(gè)變量的值進(jìn)行更換,改成我們所配置的路徑。

這時(shí)就需要用戶控件Config出場(chǎng)了,因?yàn)檫@個(gè)用戶控件主要就是暴露給客戶端,負(fù)責(zé)和客戶端交互,我們查看下其代碼可以發(fā)現(xiàn)在其ascx中包含了一段服務(wù)器腳本代碼,其中有個(gè)方法SetConfig就是用來設(shè)置上傳文件允許的類型、上傳的默認(rèn)路徑的,所以我們只需在這里新增我們的配置。

首先,在FredCK.FCKeditorV2.FileBrowser.Config.cs中新增一個(gè)屬性:

public string UploadPath { get; set; }

這個(gè)屬性是用來設(shè)置存放上傳文件的具體個(gè)性化路徑,與配置的FCKeditor:UserFilesPath不沖突,因?yàn)镕CKeditor:UserFilesPath是設(shè)置存放所有文件的根路徑,如:“~/Upload/”,而UploadPath則是配置基于上傳根目錄的個(gè)性化路徑,如:“News”等,增加好這個(gè)屬性后就可以在ascx文件中增加具體的配置路徑,如:

UploadPath = "News/" + DateTime.Now.Year.ToString() + DateTime.Now.Month.ToString();

我這邊配置的是一個(gè)新聞配置,按照年月分隔。

這步做完并沒有結(jié)束,還需要做2步操作:

1、關(guān)閉文件瀏覽器,在fckconfig.js文件中將FCKConfig.LinkBrowser、FCKConfig.ImageBrowser和FCKConfig.FlashBrowser都置為false,這樣上傳圖片只能通過下圖中上傳選項(xiàng)卡進(jìn)行上傳(也就是fckeditor代碼中的快速上傳—QuickUpload),同時(shí)無法查看服務(wù)器中的文件:

2、更改路徑獲取代碼,在TypeConfig類中將GetQuickUploadPath方法改為以下代碼:

internal string GetQuickUploadPath() {string path = this.FileWorker.Config.UploadPath;if (_QuickUploadPath == null && string.IsNullOrEmpty(path) == false)_QuickUploadPath = QuickUploadPath.Replace("%UserFilesPath%", System.IO.Path.Combine(this.FileWorker.Config.UserFilesPath, path));return _QuickUploadPath; }

主要將path獲取改成了從用戶控件Config中獲取UploadPath,然后進(jìn)行組合這樣組合出來的路徑就是:/Upload/News/201012

?

這樣就完成了fckeditor上傳文件路徑分類配置了,目的是達(dá)到了,不過還有個(gè)瑕疵就是如果要新增一種路徑則需要網(wǎng)站中新增一個(gè)fckeditor的HTML包,在其中的fckeditor\editor\filemanager\connectors\aspx\config.ascx控件中修改一下UploadPath配置,如果各位還有其他解決辦法歡迎分享!

?

源碼下載:點(diǎn)我下載(直接瀏覽網(wǎng)站根目錄下Default.aspx既可)

?

話說,各位看過的朋友如果覺得本文對(duì)您還有點(diǎn)用,或者覺得本文還有價(jià)值的話,麻煩將鼠標(biāo)移到【推薦】上,幫我點(diǎn)擊下,非常非常的感謝!

?

項(xiàng)目過程中所遇到的各種問題記錄

編輯器篇:

??????? FCKeditor相關(guān)知識(shí)及各種常見使用問題

??????? FCKeditor自定義上傳路徑配置

圖表篇:

??????? 有關(guān)MSChart的一些小技巧

??????? asp.net上不錯(cuò)的圖表選擇—FunsionCharts

ORM篇:

??????? 使用NHibernate配置對(duì)象實(shí)體的一些小問題

??????? 有關(guān)NHibernate查詢封裝

部署篇:

??????? 項(xiàng)目部署過程中那些糾結(jié)的問題-IIS

??????? 項(xiàng)目部署過程中那些糾結(jié)的問題-SQLServer

工具篇:

??????? .NET開發(fā)時(shí)常用的工具類庫(kù)(附一個(gè)C#和VB.NET之間互傳的小工具)

總結(jié)

以上是生活随笔為你收集整理的[项目过程中所遇到的各种问题记录]编辑器篇——FCKeditor自定义上传路径配置...的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。