java导入文件的病毒检测功能

在application.properties文件中设置属性

antiVirusTempDir=D:/test

此路径必须是本地计算机真实存在目录

CheckVirus.validateNoVirus(sccbd0604Form.getFileSelect().getInputStream());

导入的文件流:sccbd0604Form.getFileSelect().getInputStream()

import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;

import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;

public class CheckVirus {
private static String tempDir = null;

static {
//路径
tempDir = ApplicationProperties.getProperty("antiVirusTempDir");

}

public static boolean validateNoVirus(InputStream is) throws FileNotFoundException, IOException {
		OutputStream os = null;
		File proof = null;
		FileInputStream fis = null;
		try {
			if (tempDir != null) {
				proof = File.createTempFile("checkVirus", ".tmp", new File(tempDir));
			} else {
				proof = File.createTempFile("checkVirus", ".tmp");
			}
			os = new BufferedOutputStream(new FileOutputStream(proof));

			int c;
			InputStream bis = new BufferedInputStream(is); // 念のため       chắc ăn
			while ((c = bis.read()) != -1) {
				os.write(c);
			}
			os.flush();
			LOG.info(MessageUtil.getMessage(CommonConstants.LGAZ2007_I,proof.getAbsoluteFile().getName()));
		} finally {
			if (os != null) os.close();
		}

		//アンチウィルスにファイルを削除させるため、ファイルを読み込む
    //Vi bắt delete file tại unvirus nen sẽ đọc vao file
		try {
			fis = new FileInputStream(proof);
		} catch (FileNotFoundException e) {
		} finally {
			if (fis != null) fis.close();
		}

		LOG.info(MessageUtil.getMessage(CommonConstants.LGAZ2008_I,Long.toString(wait)));
		try {
			Thread.sleep(wait);
		} catch (InterruptedException e) {
		}

		boolean exist = (proof != null) && proof.exists();
		if (exist) {
			proof.delete();
			LOG.info(MessageUtil.getMessage(CommonConstants.LGAZ2009_I));
		} else {
			LOG.warn(MessageUtil.getMessage(CommonConstants.LGAZ2010_W));
		}
		return exist;
	}
}




你可能感兴趣的:(Java)