downloadfilter.java

来自「一个用jsp写的完整的论坛源代码」· Java 代码 · 共 68 行

JAVA
68
字号
package com.bcxy.bbs.filter;

import java.util.regex.Matcher;
import java.util.regex.Pattern;

import com.bcxy.db.JdbcWrapper;

public class DownloadFilter extends Filter {

	JdbcWrapper jw = new JdbcWrapper();

	public DownloadFilter(String s) {
		super(s);
	}

	public DownloadFilter() {
	}

	public String convertString() {
		return this.downloadConverter();
	}

	private String downloadConverter() {
		Pattern p;
		Matcher m;
		StringBuffer sb;
		boolean result;
		String reg = "(\\[DOWNLOAD=(.[^\\[]*),(.[^\\[]*),(.[^\\[]*)\\])(.[^\\[]*)(\\[\\/DOWNLOAD\\])";
		p = Pattern.compile(reg, Pattern.CASE_INSENSITIVE);
		m = p.matcher(s);
		sb = new StringBuffer();
		result = m.find();
		while (result) {
			int downCnt = 0;
			try {
				downCnt = jw.doIntSearch("select downcount from fileupload where name='"
								+ m.group(2) + "'");
			} catch (Exception e) {
				downCnt = 0;
			}
			String ext = "unknow";
			if("zip".equalsIgnoreCase(m.group(3))){
				ext = "zip";
			}else if("rar".equalsIgnoreCase(m.group(3))){
				ext = "rar";
			}else if("doc".equalsIgnoreCase(m.group(3))){
				ext = "doc";
			}else if("txt".equalsIgnoreCase(m.group(3))){
				ext = "txt";
			}
			m.appendReplacement(sb, "<table border=0 cellpadding=4 cellspacing=0><tr><td><b>相关附件:</b><a href=\"file_download.jsp?filename="
					+ m.group(2) + "\"><img border=0 src=\"images/icon/" + ext
					+ ".gif\">" + m.group(5) + "</a>[文件大小:"
					+ m.group(4) + " 字节] <img src=\"images/icon/down.gif\"> 下载次数:" + downCnt + " 次</td></tr></table>");
			result = m.find();
		}
		m.appendTail(sb);

		return sb.toString();
	}

	public static void main(String[] args) {
		DownloadFilter ff = new DownloadFilter(
				"[download=480360.zip,zip,1234566]线条3.swf[/download]");
		System.out.print(ff.getFilterString());
	}
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?