编辑器图片本地化

利用正则表达式匹配出编辑器内容中<img>标签,上传后再将生成的新图片路径替换Html中的原来的<img>标签

 1 /// <summary>
 2         /// 取得HTML中所有图片的 URL。
 3         /// </summary>
 4         /// <param name="sHtmlText">HTML代码</param>
 5         /// <returns>图片的URL列表</returns>
 6         public static string GetHtmlImageUrlList(string sHtmlText)
 7         {
 8             // 定义正则表达式用来匹配 img 标签
 9             Regex regImg = new Regex(@"<img\b[^<>]*?\bsrc[\s\t\r\n]*=[\s\t\r\n]*[""‘]?[\s\t\r\n]*(?<imgUrl>[^\s\t\r\n""‘<>]*)[^<>]*?/?[\s\t\r\n]*>", RegexOptions.IgnoreCase);
10             // 搜索匹配的字符串
11             MatchCollection matches = regImg.Matches(sHtmlText);
12             int i = 0;
13             string[] sUrlList = new string[matches.Count];
14             // 取得匹配项列表
15             foreach (Match match in matches)
16             {
17                 if (!(match.Groups["imgUrl"].Value.Substring(0, 8) == "/upload/"))
18                 {
19                     WebClient wc = new WebClient();
20                     string fileName = match.Groups["imgUrl"].Value.Substring(match.Groups["imgUrl"].Value.LastIndexOf("/") + 1); //取得原文件名
21                     string upLoadPath = "/upload/" + DateTime.Now.ToString("yyyyMM") + "/" + DateTime.Now.ToString("dd") + "/"; //上传目录相对路径
22                     string fullUpLoadPath = Utils.GetMapPath(upLoadPath); //上传目录的物理路径
23                     if (!Directory.Exists(fullUpLoadPath))
24                     {
25                         Directory.CreateDirectory(fullUpLoadPath);
26                     }
27                     string newFilePath = upLoadPath + fileName; //上传后的路径
28                     wc.DownloadFile(match.Groups["imgUrl"].Value, HttpContext.Current.Server.MapPath(newFilePath));
29                     sHtmlText = sHtmlText.Replace(match.Groups["imgUrl"].Value, upLoadPath + fileName);
30                 }
31             }
32             return sHtmlText;
33         }

时间: 2024-12-25 04:09:06

编辑器图片本地化的相关文章

onethink框架 编辑器图片没有上传权限

昨天遇到了一个有点蛋疼的问题,创建了一个用户,但是在添加数据的时候,发现编辑器中的图片上传不能使用老是提示下图的那种提示: 然后自己一直在想,怎么编辑器还要图片上传权限呢,淡淡的忧伤啊.然后自己琢磨了一会,发现自己解决不了.立马到Q群中询问,一问,还真的搞定了.原来是要设置权限,不过这个权限是框架数据中早就有了,我们只需要勾选上就可以了.当然了,我这种情况只适用于直接在框架demo上扩展使用的项目,如果完全是自己编写的,那就要看你们各自的构建是咋样的啦.废话不多说,上图:这下子清净了,搞定,再也

火车头dede采集接口,图片本地化

<?php /* [LocoySpider] (C)2005-2010 Lewell Inc. 火车采集器 DedeCMS 5.6 UTF8 文章发布接口 最后更新:2010.07.10 by RQ204 视频教程:http://video.locoy.com/jiekou/dede/dede56_article.7z */ /********密码验证***********/ $password='huarenyuangong'; //这个密码是登陆验证用的.您需要在模块里设置和这里一样的密码.

dede不能下载远程图片及如何实现图片本地化的方法

有些时候我们想保存图片到本地服务器的时候发现保存不了,比如我们自己拷贝自己的站点到另外一个服务器等等,下面3A网络的小钱就来分享Dedecms无法保存远程图片到本地服务器的解决方法,分享给大家供大家参考.具体分析如下: 一.开启远程图片本地化 在编辑区域上方有个附加选项:下载远程图片和资源,把这个选上即可!也在可以在系统设置里面的其他选项把:远程图片本地化这个项目给选上! 二.检查网站目录 上传图片目录中是否有allimg这个文件夹(当更改了图片上传目录的情况下最容易出现这个问题) 三.可能是因

PHP 远程图片本地化

<?php /** 远程图片本地化 **/ function pget($url,$ref=false,$head=false){ $curl = curl_init(); // 启动一个CURL会话 curl_setopt($curl, CURLOPT_URL, $url); // 要访问的地址             curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, 0); // 对认证证书来源的检查 curl_setopt($curl, CURLOPT_

【HTML5+MVC4】XhEditor网页编辑器图片上传

1.定义模板RichText.cshtml 文件路径:Views/Shared/EditorTemplates/ <textarea id="@ViewData.ModelMetadata.PropertyName" name="@ViewData.ModelMetadata.PropertyName" rows="30" cols="80" style="width: 96%">@Model&

【代码审计】EasySNS_V1.6远程图片本地化导致Getshell

0x00 环境准备 EasySNS官网:http://www.imzaker.com 网站源码版本:EasySNS极简社区V1.60 程序源码下载:http://es.imzaker.com/index.php/Topic/gview/id/92.html 默认后台地址:http://127.0.0.1/admin.php/Login/login.html 默认账号密码:admin/admin 测试网站首页: 0x01 代码分析 ? 1.漏洞文件位置:  /app/common.func.php

百度编辑器图片在线流量返回url修改

百度编辑器中返回的是我们服务器中的url,有时并不是我们需要的,比如图文编辑中,我想在线浏览上传过的图片 ,那么我返回的应该是腾讯服务器上面的url,这样才不会被腾讯的过滤器过来掉,所有我们就需要修改在线管理的图片获取路径具体操作如下: BaseState fileState = null; File file = null; String realpath= null; for ( Object obj : files ) { if ( obj == null ) { break; } fil

图片本地化

本地化图片,有两种方式,第一种方式和本地化代码中的字符串一样,通过NSLocalizedString(key,comment)来获取相应的字符串,然后根据这个字符串再获取图片. 1.方式一 NSString *imageName = NSLocalizedString(@"icon", nil); UIImage *image = [UIImage imageNamed:imageName]; self.imageView.image = image; 2.方式二 2.1 首先需要添加

CKEditor5 + vue2.0 富文本编辑器 图片上传、highlight等用法

因业务需求,要在 vue2.0 的项目里使用富文本编辑器,经过调研多个编辑器,CKEditor5 支持 vue,遂采用.因 CKEditor5 文档比较少,此处记录下引用和一些基本用法. CKEditor5官网 https://ckeditor.com/docs/ckeditor5/latest/builds/guides/overview.html CKEditor5 引入 有四种编辑器可供下载,根据自己的需求选择,因为开发需求需要颜色笔,所以采用 Document editor. 如果之前有