Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/345.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在Java中上载时使用防病毒软件扫描文件?_Java_File Upload - Fatal编程技术网

如何在Java中上载时使用防病毒软件扫描文件?

如何在Java中上载时使用防病毒软件扫描文件?,java,file-upload,Java,File Upload,我正在开发一个需要上传文件的应用程序,它还需要 使用服务器上可用的防病毒软件扫描文件 我听说Symantec为应用服务器提供了ABTAPI 情况是,我需要在不同的地方部署应用程序 未来所以,我想放置一个配置文件 我将从何处获取可用的防病毒软件及其路径 我想在服务器上使用任何可用的防病毒软件,然后 使用命令行,我想传回文件名和结果 我对传递文件和检索结果感到困惑 有可能吗?我刚在谷歌上搜索到一篇有趣的文章,请看一看 要在Java中实现病毒文件扫描,需要使用第三方软件包。在本文中,我将使用Syman

我正在开发一个需要上传文件的应用程序,它还需要 使用服务器上可用的防病毒软件扫描文件

我听说Symantec为应用服务器提供了ABTAPI

情况是,我需要在不同的地方部署应用程序 未来所以,我想放置一个配置文件 我将从何处获取可用的防病毒软件及其路径

我想在服务器上使用任何可用的防病毒软件,然后 使用命令行,我想传回文件名和结果

我对传递文件和检索结果感到困惑


有可能吗?

我刚在谷歌上搜索到一篇有趣的文章,请看一看

要在Java中实现病毒文件扫描,需要使用第三方软件包。在本文中,我将使用Symantec扫描引擎(SSE)包,它随Java API一起提供。这个包是一个用作TCP/IP服务器的应用程序,它有一个编程接口,使Java应用程序能够集成对内容扫描技术的支持。在本文中,我使用了Symantec Scan Engine 5.1,它可以在Unix或Windows上安装

快速参考:

public void scanFile(byte[] fileBytes, String fileName)
   throws IOException, Exception {

   if (scan) {
      AVClient avc = new AVClient(avServer, avPort, avMode);
      if (avc.scanfile(fileName, fileBytes) == -1) {
         throw new VirusException("WARNING: A virus was detected in
            your attachment: " + fileName + "<br>Please scan
            your system with the latest antivirus software with
            updated virus definitions and try again.");
      }
   }
}

使用以下代码

String[] commands =  new String[5];
                  commands[0] = "cmd";
                  commands[1] = "/c";
                  commands[2] = "C:\\Program Files\\AVG\\AVG10\\avgscanx.exe";
                  commands[3] = "/scan=" + filename;
                  commands[4] = "/report=" + virusoutput;


                 Runtime rt = Runtime.getRuntime();
                 Process proc = rt.exec(commands);

通讯线路对您来说是更好的选择。然后阅读日志文件以解决问题。

使用Java中的VirusTotal Public API V2.0实现并由编写
可访问
它具有丰富的功能,可以扫描文件、URL、域、IP地址,并获得有关扫描的详细报告。
使用此API,您的文件将被56个防病毒引擎扫描。而且所有防病毒引擎都在virustotal云中运行,因此您无需维护或运行任何防病毒引擎。
此API的一个重要特性是,它具有接受java.io.FileInputStream或java.io.File作为参数的方法。
所有API功能都用示例进行了清楚的说明。
使用此api的步骤
步骤1:在(谷歌子公司VirusTotal)中创建一个帐户并获取API密钥
步骤2:访问并下载所需的jar文件
步骤3:只需使用API提供的方法。
您可以使用
提供的示例 Java:

Go:

通常,您的问题是:“是否可以使用java运行带参数的命令行并返回输出?”我说的对吗?您也可以使用VirusTotal.com API…也许所有大写字母都可以吸引一些额外的注意,但这种注意也会与消极态度结合在一起…嗨,JJ。。谢谢,但我不想使用“Symantec”API,正如我在帖子中提到的scanrio:)@Jigar Joshi您提供的链接不再有效,请发布完整的代码好吗?另外,请告诉我您的ClamavJava客户端来自何处,谢谢you@Maurice这是9年前的答案,可能不再有效。今天晚些时候让我更新一下。我使用了类似的方法。在LLINX中如何?@HardikMishra在我搜索same@PatelRomil当前位置我们没有找到完美的解决方案。这就是答案。virustotal是一家谷歌公司。访问获取详细信息而不知道所有这些你怎么能说它是垃圾邮件。
String[] commands =  new String[5];
                  commands[0] = "cmd";
                  commands[1] = "/c";
                  commands[2] = "C:\\Program Files\\AVG\\AVG10\\avgscanx.exe";
                  commands[3] = "/scan=" + filename;
                  commands[4] = "/report=" + virusoutput;


                 Runtime rt = Runtime.getRuntime();
                 Process proc = rt.exec(commands);