从别的网站复制文章的时候,要把图片下载到我们网站,再把图片地址换成我们网站的地址
console.log("haha");var src =document.getElementById(name).srcif(src.indexOf("rcwimg")<=0) return;
document.getElementById(name).src=cb;
}
public class WaNewsInfoVo extends Page{privateInteger id;privateString title;privateInteger typeId;privateString typeName;privateInteger typeId2;privateString typeName2;privateString logo;privateString content;privateString createTime;privateString createUser;privateString createUserName;privateString tag1;privateString tag2;privateInteger isDisplay;privateInteger browser;privateString summary;
}
// 编码
private static final String ECODING = "UTF-8";
// 获取img标签正则
private static final String IMGURL_REG = "]*?>";
// 获取src路径的正则
private static final String IMGSRC_REG = "(http|https):\"?(.*?)(\"|>|\\s+)";
//添加或者修改资讯
public int insertOrUpdate(HttpServletRequest request, WaNewsInfoVo vo){
String aaa = "/attached/image/";
String path = request.getSession().getServletContext().getRealPath("../")+ "/attached/image/";
//获取图片标签
List imgUrl = getImageUrl(vo.getContent());
//获取图片src地址
List imgSrc = getImageSrc(imgUrl);
//下载图片
Download(imgSrc,path);
String test = replaceHtmlTag(vo.getContent(),"img","src","src=\""+aaa,"\"");
vo.setContent(test);
if(CommUtil.isEmpty(vo.getId())){
vo.setBrowser(0);
return waNewsDao.insert(vo);
}
return waNewsDao.update(vo);
}
/***
* 获取ImageUrl地址
*
*@paramHTML
*@return
*/
private ListgetImageUrl(String HTML) {
Matcher matcher=Pattern.compile(IMGURL_REG).matcher(HTML);
List listImgUrl = new ArrayList();while(matcher.find()) {
listImgUrl.add(matcher.group());
}returnlistImgUrl;
}/***
* 获取HTML内容
*
*@paramurl
*@return*@throwsException*/
private String getHTML(String url) throwsException {
URL uri= newURL(url);
URLConnection connection=uri.openConnection();
InputStream in=connection.getInputStream();byte[] buf = new byte[1024];int length = 0;
StringBuffer sb= newStringBuffer();while ((length = in.read(buf, 0, buf.length)) > 0) {
sb.append(newString(buf, ECODING));
}
in.close();returnsb.toString();
}/***
* 获取ImageSrc地址
*
*@paramlistImageUrl
*@return
*/
private List getImageSrc(ListlistImageUrl) {
List listImgSrc = new ArrayList();for(String image : listImageUrl) {
Matcher matcher=Pattern.compile(IMGSRC_REG).matcher(image);while(matcher.find()) {
listImgSrc.add(matcher.group().substring(0, matcher.group().length() - 1));
}
}returnlistImgSrc;
}/***
* 下载图片
*
*@paramlistImgSrc*/
private void Download(ListlistImgSrc, String path) {try{for(String url : listImgSrc) {if(url.indexOf("http")>=0){
String imageName= url.substring(url.lastIndexOf("/") + 1, url.length());
URL uri= newURL(url);
InputStream in=uri.openStream();
FileOutputStream fo= new FileOutputStream(newFile(path,imageName));byte[] buf = new byte[1024];int length = 0;
System.out.println("开始下载:" +url);while ((length = in.read(buf, 0, buf.length)) != -1) {
fo.write(buf,0, length);
}
in.close();
fo.close();
System.out.println(path+imageName + "下载完成");
}
}
}catch(Exception e) {
System.out.println("下载失败");
}
}
替换img标签
/*** 替换指定标签的属性和值
*@paramstr 需要处理的字符串
*@paramtag 标签名称
*@paramtagAttrib 要替换的标签属性值
*@paramstartTag 新标签开始标记
*@paramendTag 新标签结束标记
*@return*@authorhuweijun
* @date 2016年7月13日 下午7:15:32*/
public staticString replaceHtmlTag(String str, String tag, String tagAttrib, String startTag, String endTag) {//匹配以结尾
String regxpForTag = "]*)\\s*";//匹配src="开头,"结尾
String regxpForTagAttrib = tagAttrib + "=\\s*\"([^\"]+)\"";//编译后的正则表达式
Pattern patternForTag =Pattern.compile (regxpForTag,Pattern. CASE_INSENSITIVE );
Pattern patternForAttrib=Pattern.compile (regxpForTagAttrib,Pattern. CASE_INSENSITIVE );//先查
Matcher matcherForTag =patternForTag.matcher(str);
StringBuffer sb= newStringBuffer();//如果有结果
boolean result =matcherForTag.find();while(result) {
StringBuffer sbreplace= new StringBuffer( "
Matcher matcherForAttrib = patternForAttrib.matcher(matcherForTag.group(1));if(matcherForAttrib.find()) {
String attributeStr= matcherForAttrib.group(1);
String imageName= attributeStr.substring(attributeStr.lastIndexOf("/") + 1, attributeStr.length());
sbreplace.append("id=‘"+imageName+"‘ alt=‘图片‘ οnerrοr=\"NextPic(‘/attached/image/"+imageName+"‘,‘"+imageName+"‘);\"");
matcherForAttrib.appendReplacement(sbreplace, startTag+ "rcwimg" +endTag);
}
matcherForAttrib.appendTail(sbreplace);
matcherForTag.appendReplacement(sb, sbreplace.toString());
result=matcherForTag.find();
}
matcherForTag.appendTail(sb);returnsb.toString();
}