[ASP.net] Summernote 把所有base64圖片取出來

2015-10-05

最近比較少用CKEditor 比較常用的是 SummerNote,因為她對RWD的支援會比較好一點

image
用法也很簡單,首先下載必要的.js 跟 .css 檔案放在專案下方
image
之後加入Code 在 <head></head> 裡面


<!-- include libraries(jQuery, bootstrap, fontawesome) -->
<script src="//code.jquery.com/jquery-1.9.1.min.js"></script> 
<link href="//netdna.bootstrapcdn.com/bootstrap/3.0.1/css/bootstrap.min.css" rel="stylesheet"> 
<script src="//netdna.bootstrapcdn.com/bootstrap/3.0.1/js/bootstrap.min.js"></script> 
<link href="//netdna.bootstrapcdn.com/font-awesome/4.0.3/css/font-awesome.min.css" rel="stylesheet">
 
<!-- include summernote css/js-->
<link href="summernote.css" rel="stylesheet">
<script src="summernote.min.js"></script>

在body 中的 code

 
<div class="summernote" id="textEditor1"  runat="server"></div>
 
Init Summernote

<script>
 
//Init Summernote
$(document).ready(function () {
    $('.summernote').summernote();
});
 
 
</script>

因為他處理圖片的部分會變成base64 其實這一點處理有好有壞,所以我在C#這邊寫一個function 可以幫助 把內文的圖片都取出來 變成 一個KeyValuePair<string, string>[],Key的部分我就是放base64中紀錄的格式像是jpeg, png ,然後value部分就是放入base64的內容


 
/// <summary>
/// Parse SummerNote Code 的base 64圖片出來
/// 
/// </summary>
/// <param name="summernoteCode">summernote Code</param>
/// <returns></returns>
protected KeyValuePair<string, string>[] Convert2Bitmaps(string summernoteCode)
{
    var res = new List<KeyValuePair<string, string>>();
    var regex = new Regex("(image/(?<FORMAT>.*?);base64,)(?<VAL1>.*?)(\\\")", RegexOptions.IgnoreCase);
 
    MatchCollection matches = regex.Matches(summernoteCode);
 
    if (matches.Count > 0)
    {
 
        foreach (Match m in matches)
        {
 
            Response.Write(m.Groups["VAL1"].Value);
            Response.Write("<br>=========<br>");
            res.Add(new KeyValuePair<string, string>(m.Groups["FORMAT"].Value, m.Groups["VAL1"].Value));
 
        }
    }
 
    return res.ToArray();
}

程式碼如下,給有需要的人,不用再做一次


當麻許的超技八 2014 | Donma Hsu Design.