zoukankan      html  css  js  c++  java
  • C# 写的通用得到富文本框中的图片路径

    富文本框(即 ueditor)是个好东西,功能很强大!开发者若需要去了解学习的话,可以访问:http://ueditor.baidu.com/website/ 进行学习。

    但是有得后端开发者需要取出其中某一类的标签,比如需要取出里面的所有图片等....

    好,废话不多说,直接上代码:

    例子:

         /// <summary>
            /// 通用得到富文本框中的图片
            /// </summary>
            /// <returns></returns>
            private List<string> GetContentImg(string content)
            {
                //存储图片的集合
                List<string> imgList = new List<string>();
                //定义匹配变量
                int j = 0;
                //定义截取开始下标
                int startIndex = 0;
                //定义截取长度变量
                int len = 0;
                //从content中取出图片
                for (int i = 0; i < content.Length; i++)
                {
                    char ch = content[i];
                    if (len > 0)
                    {
                        len++;
                    }
                    //判断是否满足条件
                    if ((j==0 && ch == 'i') || (j == 1 && ch == 'm') || (j == 2 && ch == 'g') || (j == 3 && ch == ' ') || (j == 5 && ch == 'r') ||(j == 6 && ch == 'c') ||(j == 7 && ch == '"')||(j == 4 && ch=='s')||(j == 8 && ch == '"'))
                    {
                        if (j==4)
                        {
                            startIndex = i;
                            len++;
                        }
                        if (j == 8)
                        {
                            //开始截取
                            string str = content.Substring(startIndex, len);
                            imgList.Add(str);
                            //清空
                            startIndex = 0;
                            j = 0;
                            len = 0;
                        }
                        j++;
                        continue;
                    }
                }
                var list = new List<string>();
                if (imgList.Count>0)
                {
                    //得到服务器地址
                    var cmsDomain = _configuration.GetSection("System:CMSDomainName").Value;
                    foreach (var item in imgList)
                    {
                        string url = item;
                        //拆分
                        var newUrl = url.Split('"');
                        if (newUrl.Length>1)
                        {
                            url = newUrl[1].Replace("@/", "/");
                        }
                        //拼接
                        url = cmsDomain + url;
                        //验证图片是否可以在网络上访问
                        bool flag = FileClassify.JudgeFileExist(url);
                        if (flag)
                        {
                            list.Add(url);
                        }
                    }
                }
                return list;
            }

    其中:fileClassify是一个静态的类

    public static bool JudgeFileExist(string url)
            {
                try
                {
                    //创建根据网络地址的请求对象
                    var httpWebRequest = (HttpWebRequest)WebRequest.CreateDefault(new Uri(url));
                    httpWebRequest.Method = "HEAD";
                    httpWebRequest.Timeout = 1000;
                    //返回响应状态是否是成功比较的布尔值
                    var data= (HttpWebResponse)httpWebRequest.GetResponse();
                    return data.StatusCode == HttpStatusCode.OK;
                }
                catch
                {
                    return false;
                }
            }

    呵呵,才写好的。可能封装性不是很好,也有可能会有漏洞,大家可以用 try catch 来捕获异常,因为我也是初级程序员,后期还会继续优化的!

  • 相关阅读:
    Java基本语法--程序流程控制
    Java基本语法--控制台输入(Scanner类)
    Java基本语法--运算符
    curl:出现SSL错误提示
    升级ruby的版本
    Linux之expect非交互式功能
    Rsync备份同步数据工具
    Linux发展历史
    解决DDOS攻击生产案例
    用shell脚本监控MySQL主从同步
  • 原文地址:https://www.cnblogs.com/qudeqiang/p/9172105.html
Copyright © 2011-2022 走看看