======================================================================javascript
【百度Web富文本編輯器ueditor在ASP.NET MVC3項目中的使用說明】css
----by 夏春濤 2014-02-20html
======================================================================java
運行環境:安全
ueditor-v1.3.6-utf8-net,VS2010旗艦版+SP1,ASP.NET MVC3。服務器
將下載後的ueditor壓縮包的全部文件拷貝到/Content/ueditor目錄中。編輯器
1.WEB視圖頁面中以下配置,運行時應能看到完整的富文本編輯器界面:函數
<!-- ******************************************************************** -->fetch
<link rel="stylesheet" href="@Url.Content("~/Content/ueditor/themes/default/css/ueditor.min.css")" type="text/css" />網站
<script src="@Url.Content("~/Content/ueditor/ueditor.config.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Content/ueditor/ueditor.all.min.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Content/ueditor/lang/zh-cn/zh-cn.js")" type="text/javascript"></script>
<!-- ******************************************************************* -->
..
@Html.TextAreaFor(p => p.Content)
..
<script type="text/javascript">
UE.getEditor("Content");//初始化富文本編輯器
</script>
2.修改ueditor.config.js內容,在函數第一行增長ueditor目錄路徑配置,該路徑是相對於網站根目錄的,
如是http://www.xxx.com/Content/ueditor/ 則爲 /Content/ueditor/。
配置好後插入圖片等操做的對話框顯示樣式會變得正常。
window.UEDITOR_HOME_URL = "/Content/ueditor/";
3.根據須要修改ueditor.config.js內容,如下列舉了一些經常使用項:
, initialFrameWidth: 760 //編輯器寬度
, initialFrameHeight: 400 //編輯器高度
, wordCount: false //編輯器下方顯示控制:不讓編輯器統計字數
, elementPathEnabled: false //編輯器下方顯示控制:不顯示元素路徑
, autoHeightEnabled: false //不讓編輯自動長高(這樣,當內容較多時會出現上下滾動條,而不至於把網頁撐大)
4.解決「檢測到有潛在危險的 Request.Form 值」的問題。
錯誤提示:
從客戶端(Content="<p><span style="colo...")中檢測到有潛在危險的 Request.Form 值。
緣由說明:
由於富文本編輯器產生的內容中會包含<>"等特殊字符,服務器默認進行內容安全檢測並阻止代碼運行。
解決辦法:
爲Action添加屬性:[ValidateInput(false)],示例:
[HttpPost]
[ValidateInput(false)] //不進行內容檢測
public ActionResult NewsEdit(News newsModel)
{
//...
}
5.★解決文件不能上傳的問題。
錯誤提示:
Url: http://localhost:11685/Content/ueditor/net/fileUp.ashx
Description: e:\咱們的項目\BetterMIS\project\BetterMIS.WebViews\Content\ueditor\net\fileUp.ashx(34): error CS0433:
類型「Uploader」同時存在於「c:\Windows\Microsoft.NET\Framework\v4.0.30319\Temporary ASP.NET Files\root\98d019ee\65f02c2e\App_Web_uploader.cs.d026ad6.qqgskfar.dll」
和「c:\Windows\Microsoft.NET\Framework\v4.0.30319\Temporary ASP.NET Files\root\98d019ee\65f02c2e\assembly\dl3\a6a5387f\ee12af20_0d2ecf01\BetterMIS.WebViews.DLL」中。
解決辦法:
ueditor的net文件夾下的Uploader.cs文件的生成操做屬性默認是「編譯」,只須要將這個文件的生成操做屬性改成「內容」,
上傳圖片的功能就能夠正常成功使用了![源自:http://www.cnblogs.com/beyond1983/archive/2013/02/26/2933744.html]
緣由剖析:
由於Ueditor的示例是針對Asp.net網站(不是MVC),不須要編譯成DLL,直接把示例放到IIS下就可使用啦。
6.★解決上傳圖片時總提示「選擇保存目錄:正在讀取目錄...」的問題。
問題現象補充:若是選擇本地圖片後,點擊「開始上傳」老是提示「請等待保存目錄就緒」。
錯誤提示:
Url: http://localhost:11685/Content/ueditor/net/imageUp.ashx?fetch=1
Description: e:\咱們的項目\BetterMIS\project\BetterMIS.WebViews\Content\ueditor\net\imageUp.ashx(18): error CS0433:
類型「Config」同時存在於「c:\Windows\Microsoft.NET\Framework\v4.0.30319\Temporary ASP.NET Files\root\98d019ee\65f02c2e\App_Web_config.cs.d026ad6.storkrj4.dll」
和「c:\Windows\Microsoft.NET\Framework\v4.0.30319\Temporary ASP.NET Files\root\98d019ee\65f02c2e\assembly\dl3\a6a5387f\02a91fba_162ecf01\BetterMIS.WebViews.DLL」中。
解決辦法(緣由同上):
ueditor的net文件夾下的Config.cs文件的生成操做屬性默認是「編譯」,只須要將這個文件的生成操做屬性改成「內容」。
7.★解決沒法正常顯示剛剛上傳的圖片的問題。
問題現象:
成功上傳一張圖片,插入到編輯器中,可是沒法正確顯示剛剛上傳的圖片。
緣由剖析:
查看html源碼能夠發現圖片路徑中,upload1後面有2個/,手動刪除一個後,返回查看,圖片能夠正常顯示了。
解決辦法1:
在imageUp.ashx文件中找到代碼:
info = up.upFile(context, path + '/', filetype, size);
把把+'/'給刪除掉,即:
info = up.upFile(context, path, filetype, size);
解決辦法2:
在Uploader.cs文件中找到代碼(在upFile函數中):
pathbase = pathbase + "/";
修改成:
pathbase = pathbase.TrimEnd('/') + "/";
這樣,能夠完全解決相似問題,由於ueditor的上傳功能都是調用Uploader類實現的。
8.修改上傳文件的路徑:
(1)圖片上傳路徑。修改Config.cs文件:
將
public static string[] ImageSavePath = new string[] { "upload1", "upload2", "upload3" };//即ueditor/net/upload1等目錄
改成:
public static string[] ImageSavePath = new string[] { "upload/image" };//即圖片上傳到ueditor/net/upload/image目錄中
另,對於【圖片搜索】中的圖片保存路徑。修改getRemoteImage.ashx文件:
將
string savePath = "upload/";
改成:
string savePath = "upload/image/"; //即圖片保存到ueditor/net/upload/image目錄中
補充說明:對於【圖片搜索】中的圖片保存,系統會自動在savePath目錄下再以日期爲名建立文件夾來保存文件。
(2)附件(及視頻文件)上傳路徑。修改fileUp.ashx文件:
將
String pathbase = "upload/";
改成:
String pathbase = "upload/file";//即附件上傳到ueditor/net/upload/file目錄中
(3)塗鴉上傳路徑。修改scrawUp.ashx文件:
一是將
string pathbase = "tmp/";
改成:
string pathbase = "upload/tmp/";
二是將
string pathbase = "upload/";
string tmpPath = "tmp/";
改成:
string pathbase = "upload/scraw/";
string tmpPath = "upload/tmp/";
補充說明:系統會自動在pathbase目錄下再以日期爲名建立文件夾來保存文件。
9.注意將upload目錄的訪問權限放開(右鍵文件夾->屬性->安全->編輯,便可設置),容許everyone用戶徹底控制(固然安全一點應該只容許IIS_WPG帳戶徹底控制便可)。
======================================================================
----by 夏春濤 20140220
======================================================================