做网站的时候,前台和后台是分开的, 用了CKEDITOR上传图片,但是发现内容带图片的时候,前台Web浏览的时候是一个红X,一看路径不对,上传的到数据库中的是相对的虚拟路径,例如:<img alt="" src="/uploadFile/images/Penguins.jpg" style="height:600px; 800px" />,需要加上图片服务器、或者是后台服务器的域名。
想了各种方法都没用一个好用的,后来想到了替换或者加上一个域名到路径前面,在网上找了一个方法加以修改,最后得到内容中的为:<img alt="" src="http://127.0.0.1:81/uploadFile/images/Penguins.jpg" style="height:600px; 800px" /> 代码如下:
private string changeContent(string content)
{
string str = content;
Regex imgReg = new Regex(@"<img[^>]*(ssrc=)('|"")?([^>""'s]*.(gif|jpg|bmp|jpeg|psd|png|svg|dxf|wmf|tiff|swf))('|"")?[Ss][^>]*>", RegexOptions.IgnoreCase);
MatchCollection matches = imgReg.Matches(content);
foreach (Match m in matches)
{
string newStr, oldStr, tempstr;
oldStr = m.Groups[0].Value;
newStr = m.Groups[3].Value;
tempstr = oldStr.Replace(newStr, "http://127.0.0.1:81" + newStr);
str = str.Replace(oldStr, tempstr);
}
return str;
}