How to SCAN uploaded files for VIRUS in APEX

part 1:
Goal:
Do a virus scan of the uploaded file from APEX application prior to storing the file in custom tables.
The process:
Followed the document from www.developer.com:
Implementing an Anti-Virus File Scan in JEE Applications
By Vlad Kofman
Go to page: 1 2 3 Next
This article will discuss one of the ways to implement antivirus file scanning in Java, particular in the JEE applications. Viruses, Trojan Horses, and different malware and spyware are a real problem for current computer environments, and especially for the Windows operating system. If you are designing any application in Java that has a requirement to be able to upload external files, you have a potential security risk. By uploading, I mean any way to get the external file inside of the corporate firewall be it via HTTP protocol or any other means. It is quite common to have this type of requirement in an enterprise application and with Java being one of the most popular web development platforms, it is unfortunate that this type of gaping security risk is quite often overlooked.
Java's Development Kit (JDK) does not have any means to do the antivirus scan right out of the box. This is primarily because Java is a programming language, and does not have any virus scanning packages. Furthermore, anti-virus software is not Sun's area of expertise or business model. Developing this type of software (or Java package), and more importantly maintaining it, would be a huge task for Sun. Mainly because viruses are constantly evolving and keeping virus definitions up-to-date is a daunting task. Large companies such as McAffee, Symantec, or Zone Labs develop virus detecting and combating products and spend a lot of resources to maintain them.
Application Environment
To implement a virus file scan in Java, a third-party package needs to be used. For the purposes of this article, I will use Symantec Scan Engine (SSE) package, which comes with Java APIs. This package is an application that serves as a TCP/IP server and has a programming interface and enables Java applications to incorporate support for content scanning technologies. For this article, I used Symantec Scan Engine 5.1, which is available as a Unix or Windows install.
If you are using an anti-virus package from the different vendor, you will need to investigate what kind of APIs are available; however, the general approach should be similar. Also, note that my implementation can be used with JEE technology and any modern MVC framework such as Struts or Spring.
The architecture is as follows: A server machine needs to have SSE running at all times. This can be the same machine that hosts your Application Server, but in an enterprise environment this should be a different machine. The Default Port needs to be open through the firewall to allow communication with the scan engine. All JEE applications that need to do file scanning can talk to the SSE server machine through a default port. Also, multiple applications running on different application servers can re-use the same scanning server. For more information, you should refer to the Symantec Scan Engine (SSE) Installation Guide, available on the Symantec web site.
When an external file that needs to be scanned is sent to the SSE via its programming interface (Java APIs using the default port), before any other operation on the file is performed, the SSE returns a result code. For instance, a file is uploaded by an external user into the web email type application as an attachment; then, the SSE API is invoked by the application and the return code of pass or fail determines the outcome of the upload and whether that email can actually be sent. If you have an account on Yahoo mail, you probably have seen that Yahoo is using Norton Antivirus to scan all attachments, although no Java.
Click here for a larger image.
Figure 1: Screen shot from Yahoo
For details on the Scan Engine Server Installationm please see the Symantec Scan Engine (SSE) Implementation Guide from Symantec.
Here are some key things to remember about SSE:
•     Java 2 SE Runtime (JRE) 5.0 Update 6.0 or later must be installed on the server before the SSE installation is done.
•     After installation, verify that the Symantec Scan Engine daemon is running. At the Unix command prompt (if it's a Unix install), type the following command:
ps –ea | grep sym.
A list of processes similar to the following should appear:
o     5358 ? 0:00 symscan
o     5359 ? 0:00 symscan
If nothing is displayed the SSE process did not start.
If the SSE process did not start, type the following command to restart SSE:
/etc/init.d/symscan restart
•     Keeping the virus definition up to date is the most important task and if new updates are not installed, the whole scan becomes ineffective. Symantec automatically downloads the most current file definitions through LiveUpdate. Please make sure that firewall rules are in place to allow the host server to connect to the Symantec update service.
Project Setup
For the purposes of this article, I included a wrapper for the Symantec SSE APIs, av.jar, which has Symantec Java APIs and serves as a client to the SSE server and takes care of all communications with the server. Please refer to the download source section. The av.jar should be included in the Java CLASSPATH to work with the SSE. This jar contains a class called AVClient that takes care of actually sending the files to SSE as byte arrays and returning the result.
In my project setting, I added three variables to be accessed via the System.getProperty mechanism. For example:
AV_SERVER_HOST=192.168.1.150
AV_SERVER_PORT=1344
AV_SERVER_MODE=SCAN
The AV_SERVER_HOST is the host name or IP of the machine where Scan Engine is installed.
The AV_SERVER_PORT is the port where Scan Engine listens for incoming files.
The AV_SERVER_MODE is the scan mode which can be:
•     NOSCAN: No scanning will be done (any keyword that does not start with "SCAN" will result in ignoring the call to the Scan Engine and no files will be transferred for scanning).
•     SCAN: Files or the byte stream will be scanned, but the scan engine will not try to repair infections.
•     SCANREPAIR: Files will be scanned, the scan engine will try to repair infections, but nothing else will be done.
•     SCANREPAIRDELETE: Files will be scanned, the scan engine will try to repair infections, and irreparable files will be deleted.
Note: For the file stream (byte array) scanning, the only meaning full values are "SCAN" and "NOSCAN".
Using the SSE Scanning Java APIs
In any class where scan is required, call the scanning API provided in the AVClient object located in the av.jar. The AVClient object will establish connection to the Scan Engine server and has the following APIs:
Figure 2: The significant APIs for the communication with to the Scan Engine Server.
If scanning a file on the file system, in SCAN only mode, use the call that accepts filename only.
If scanning a file on the file system, with SCANREPAIR or SCANREPAIRDELETE, use the call that accepts input and output file names.
If scanning an in-memory file (byte array), use the call accepting byte array.
For example:
import com.av.*;
Initialize setup parameters:
static String avMode =
(System.getProperty("AV_SERVER_MODE") != null)
? (String) System.getProperty("AV_SERVER_MODE") : "NOSCAN";
static boolean scan = avMode.startsWith("SCAN");
static String avServer =
(String) System.getProperty("AV_SERVER_HOST");
static int avPort =
Integer.parseInt( (String) System.getProperty("AV_SERVER_PORT"));
Scan check example for an in-memory file byte array:
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.");
Note that if you are using this code inside of the MVC handler, you can throw a custom VirusException and check for it in the calling method and perform any necessary cleanup. I have included the class in the AV Jar as well.
For example:
catch (Exception ex) {
logger.error(ex);
if (ex instanceof VirusException) {
// do something here
else {
// there was some other error – handle it
For more details on the Scan Engine Client API, please see Symantec Scan Engine Software Developers Guide.
Continuation in part2

part 4:
c)     Clienttester.java – This is the gui app set to test if the configuration is working or not. This gui uses the method scanfile(inputfile, outputfile) as you can see the result in the outputpane of the jframe.
* clienttester.java
* Created on April 12, 2005, 2:37 PM
* @author george_maculley
package com.av;
import java.io.*;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class clienttester
implements ActionListener {
// private String ipaddress = "127.0.0.1";
private String ipaddress = "199.209.150.58";
//private String ipaddress = "192.168.0.55";
static JFrame frame;
JFileChooser chooser = new JFileChooser();
TextField pathtofile = new TextField(System.getProperty("user.home"), 30);
// TextField pathtooutfile= new TextField(System.getProperty("user.home"),30);
private int port = 1344;
JButton filechooser = new JButton("Browse to file"); ;
private String originalfilename;
private String outputfilename;
JButton scanbutton = new JButton("Scan");
TextArea outputarea = new TextArea(20, 40);
TextField iptext = new TextField("127.0.0.1", 16);
TextField porttext = new TextField("1344", 5);
AVClient mine;
JRadioButton choosescan = new JRadioButton("SCAN");
// JRadioButton choosedelete= new JRadioButton("SCANREPAIRDELETE");
/** Creates a new instance of gui */
public clienttester() {
public clienttester(java.lang.String ip, java.lang.String infile, java.lang.String outfile, int port) {
this.ipaddress = ip;
this.port = port;
this.originalfilename = infile;
this.outputfilename = outfile;
boolean setValues(java.lang.String ip, java.lang.String infile, java.lang.String outfile, int port) {
this.ipaddress = ip;
this.port = port;
this.originalfilename = infile;
this.outputfilename = outfile;
return (true);
public void actionPerformed(java.awt.event.ActionEvent actionEvent) {
JComponent c = (JComponent) actionEvent.getSource();
if (c == filechooser) {
int retval = chooser.showDialog(frame, null);
if (retval == JFileChooser.APPROVE_OPTION) {
File theFile = chooser.getSelectedFile();
if (theFile != null) {
pathtofile.setText(theFile.getPath());
// pathtooutfile.setText(theFile.getPath());
JOptionPane.showMessageDialog(frame, "You chose this file: " + theFile.getPath());
if (c == scanbutton) {
//return object that can be passed to AVClient
String policy;
int thisport;
int scanresult;
String thisip;
String inputfile;
String outputfile;
outputarea.append("Server: " + iptext.getText() + "\r\n");
if (choosescan.isSelected()) {
policy = "SCAN";
else {
policy = "SCANREPAIRDELETE";
thisport = new Integer(porttext.getText()).intValue();
thisip = iptext.getText();
//mine= new AVClient(iptext.getText(),porttext.getText(),policy);
mine = new AVClient(iptext.getText(), thisport, policy);
if (mine.test() == 1) {
outputarea.append("Sorry. Incorrect parameters specified.\r\n");
System.exit(1);
else {
outputarea.append("Connection to SAVSE initialized.\r\n");
inputfile = pathtofile.getText();
// outputfile=pathtooutfile.getText();
outputfile = "/tmp";
outputarea.append("Scanning file " + inputfile + " \r\n");
if (policy == "SCAN") {
scanresult = mine.scanfile(inputfile);
else {
scanresult = mine.scanfile(inputfile, outputfile);
if (scanresult == 0) {
outputarea.append("File is clean.\r\n");
else if (scanresult == -1) {
outputarea.append("File is infected. \r\n");
else {
outputarea.append("Scan error.\r\n");
void display() {
Frame f = new Frame("SAVSE JAVA ICAP Client");
f.setLayout(new GridLayout(1, 2));
JPanel lpanel = new JPanel(new GridLayout(7, 1));
JPanel ippanel = new JPanel();
JPanel portpanel = new JPanel();
JPanel rpanel = new JPanel();
JPanel outputpanel = new JPanel();
JPanel buttonpanel = new JPanel();
JPanel pathpanel = new JPanel();
// JPanel outpathpanel= new JPanel();
JPanel policypanel = new JPanel();
ButtonGroup policygroup = new ButtonGroup();
filechooser.addActionListener(this);
scanbutton.addActionListener(this);
choosescan.setSelected(true);
policygroup.add(choosescan);
// policygroup.add(choosedelete);
buttonpanel.setBorder(BorderFactory.createTitledBorder("Scan Policy"));
buttonpanel.add(choosescan);
// buttonpanel.add(choosedelete);
pathpanel.setBorder(BorderFactory.createTitledBorder("Path to File"));
pathpanel.add(pathtofile);
f.setSize(new Dimension(650, 400));
f.setBackground(Color.white);
f.setResizable(true);
ippanel.setBorder(BorderFactory.createTitledBorder("SAVSE IP Address"));
ippanel.add(iptext);
outputpanel.setBorder(BorderFactory.createTitledBorder("OUTPUT"));
outputpanel.add(outputarea);
portpanel.setBorder(BorderFactory.createTitledBorder("ICAP Port"));
portpanel.add(porttext);
// outpathpanel.setBorder(BorderFactory.createTitledBorder("Path to Repair File"));
// outpathpanel.add(pathtooutfile);
lpanel.add(ippanel);
rpanel.add(outputpanel);
lpanel.add(portpanel);
lpanel.add(buttonpanel);
lpanel.add(pathpanel);
// lpanel.add(outpathpanel);
lpanel.add(filechooser);
lpanel.add(scanbutton);
f.add(lpanel);
f.add(rpanel);
f.setVisible(true);
public static void main(String[] args) {
clienttester g = new clienttester();
g.display();
d)     my2.java – This is the class file I wrote to test that I am able to send a file and scan it and see the output in the JDEVELOPER. In this case the file is stored on the filesystem of the client machine. JDEVELOPER should be able to see the file.
NOTE:
“EICAR.com” is the test file downloaded from Symantec site to test a non malicious virus file. I n order to be able to test it like this, the Antivirus program running on your machine should be disabled, or else Antivirus will kick in and delete the file. In the first place you will not be able to download the test virus file either with anti virus running on the machine you are downloading to.
package com.av;
import java.io.*;
public class my2 {
static int my_return = 0;
* @param fileBytes
* @param fileName
* @return
public static int scanfile(String fileName){
String avMode = "SCAN";
boolean scan = avMode.startsWith("SCAN");
String avServer = "xx";--avserver ip address
int avPort = 1344;
int the_return = 0;
if (scan) {
AVClient avc = new AVClient(avServer,avPort,avMode);
the_return = avc.scanfile(fileName);
if (the_return == -1) {
return (the_return);
} else
return (the_return);
//my_return = the_return;
return (the_return);
public static void main(String[] args) throws Exception {
System.out.println("Hi there in Main");
byte[] b1 = new byte[4];
b1[1] = 68;
my_return = scanfile("c:\\eicar.com");
System.out.println(my_return);
e)     Then finally we have my1.JAVA, which takes the filename, and it’s contents in the bytes form and scans the file. The reason for this method is we are not storing the file on the filesystem, it is read into the memory and only if it is clean, it is put into the database or else notify the user.
package com.av;
import java.io.*;
public class my1 {
static int my_return = 0;
static int a_length = 0;
* @param fileBytes
* @param fileName
* @return
public static int scanfile(String fileName,byte[] fileBytes) throws IOException {
String avMode = "SCAN";
boolean scan = avMode.startsWith("SCAN");
String avServer = "xxx";--avserver’s ip address
int avPort = 1344;
int the_return = 0;
if (scan) {
AVClient avc = new AVClient(avServer,avPort,avMode);
// File file = new File(fileName) ;
//byte[] fBytes = getBytesFromFile(file);
the_return = avc.scanfile(fileName, fileBytes);
if (the_return == -1) {
return (the_return);
} else
{return (the_return);}
my_return = the_return;
return (the_return);
// Returns the contents of the file in a byte array.
* @param file
* @return
* @throws IOException
public static byte[] getBytesFromFile(File file) throws IOException {
InputStream is = new FileInputStream(file);
// Get the size of the file
long length = file.length();
// You cannot create an array using a long type.
// It needs to be an int type.
// Before converting to an int type, check
// to ensure that file is not larger than Integer.MAX_VALUE.
if (length > Integer.MAX_VALUE) {
// File is too large
// Create the byte array to hold the data
byte[] bytes = new byte[(int)length];
// Read in the bytes
int offset = 0;
int numRead = 0;
while (offset < bytes.length
&& (numRead=is.read(bytes, offset, bytes.length-offset)) >= 0) {
offset += numRead;
// Ensure all the bytes have been read in
if (offset < bytes.length) {
throw new IOException("Could not completely read file "+file.getName());
// Close the input stream and return bytes
is.close();
return bytes;
// public static void main(String[] args) throws Exception {
//System.out.println("Hi there in Main");
// File file = new File() ;
// byte[] b1 = getBytesFromFile(file);
//System.out.println(b1);
// my_return = scanfile(,b1);
//System.out.println(my_return); }
Finally , you have the exceptions file,
e) package com.av;
public class VirusException
extends Exception {
public VirusException() {
super();
public VirusException(String text) {
super(text);
Once you have all these classes, you can use JDEVELOPER , to load these classes into the database: This is as follows:
Right click on the project, which has all these classes.
NEW -> deployment profiles -> load java and stored procedures.
When you are created deployment profile, you have to specify,
Loadjava options.
-f, -v (check the check boxes)
Under privileges:
-s – specify database schema these classes are loaded into
-s – create sysnonym check box
-g – grant to public or any specific users per your policy.
Under Resolver,
-r and –o (check the check boxes)
I accepted the default name storedproc1. Then you right click on the storedproc1.deploy, deploy to whichever database connection you created.
And then, In order to access this java class we need a pl/sql wrapper as follows:
create or replace package my1 is
function mycheck (pfilename in varchar2, psize in number)
return number;
end my1;
create or replace package body my1 is
     function mycheck (pfilename in varchar2, psize in number)
return number is
language java
     name 'com.av.my1.scanfile(java.lang.String, byte[]) return int';
     end my1;
And the code is invoked from sql plus as follows:
Select my1.mycheck(“filename”, “filebytes”) from dual;
One important catch in the above method is to send the filename and filecontents in bytes form. In order to send the file contents as filebytes, you will need another java class and load into the data base as described above.
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
* This program demonstrates how to read a file into a byte array. This method
* reads the entire contents of the file into a byte array.
* @version 1.0
* @author Jeffrey M. Hunter ([email protected])
* @author http://www.idevelopment.info
public class ReadFileIntoByteArray {
* method to convert a byte to a hex string.
* @param data the byte to convert
* @return String the converted byte
public static String byteToHex(byte data) {
StringBuffer buf = new StringBuffer();
buf.append(toHexChar((data >>> 4) & 0x0F));
buf.append(toHexChar(data & 0x0F));
return buf.toString();
* Convenience method to convert an int to a hex char.
* @param i the int to convert
* @return char the converted char
public static char toHexChar(int i) {
if ((0 <= i) && (i <= 9)) {
return (char) ('0' + i);
} else {
return (char) ('a' + (i - 10));
* Returns the contents of the file in a byte array
* @param file File this method should read
* @return byte[] Returns a byte[] array of the contents of the file
private static byte[] getBytesFromFile(File file) throws IOException {
InputStream is = new FileInputStream(file);
System.out.println("\nDEBUG: FileInputStream is " + file);
// Get the size of the file
long length = file.length();
System.out.println("DEBUG: Length of " + file + " is " + length + "\n");
* You cannot create an array using a long type. It needs to be an int
* type. Before converting to an int type, check to ensure that file is
* not loarger than Integer.MAX_VALUE;
if (length > Integer.MAX_VALUE) {
System.out.println("File is too large to process");
return null;
// Create the byte array to hold the data
byte[] bytes = new byte[(int)length];
// Read in the bytes
int offset = 0;
int numRead = 0;
while ( (offset < bytes.length)
( (numRead=is.read(bytes, offset, bytes.length-offset)) >= 0) ) {
offset += numRead;
// Ensure all the bytes have been read in
if (offset < bytes.length) {
throw new IOException("Could not completely read file " + file.getName());
is.close();
return bytes;
* @param filename
public static byte[] chk_file(String filename) {
byte[] fileArray = null;
try {
fileArray = getBytesFromFile(new File( filename));
} catch (IOException e) {
e.printStackTrace();
if (fileArray != null) {
for (int i=0; i<fileArray.length; i++) {
System.out.println(
"fileArray[" + i + "] = " +
((int)fileArray[i] < 9 ? " " : "") +
( ((int)fileArray[i] > 9 && (int)fileArray[i] <= 99) ? " " : "") +
fileArray[i] + " : " +
" HEX=(0x" + byteToHex(fileArray) + ") : " +
" charValue=(" + (char)fileArray[i] + ")");
return fileArray;
* Sole entry point to the class and application.
* @param args Array of String arguments.
public static void main(String[] args) {
byte[] fileArray = null;
try {
fileArray = getBytesFromFile(new File("c:\\eicar.com"));
} catch (IOException e) {
e.printStackTrace();
if (fileArray != null) {
for (int i=0; i<fileArray.length; i++) {
System.out.println(
"fileArray[" + i + "] = " +
((int)fileArray[i] < 9 ? " " : "") +
( ((int)fileArray[i] > 9 && (int)fileArray[i] <= 99) ? " " : "") +
fileArray[i] + " : " +
" HEX=(0x" + byteToHex(fileArray[i]) + ") : " +
" charValue=(" + (char)fileArray[i] + ")");
Having main method helps you to run the file in JDEVELOPER or using JAVA.
DO not forget to load this class into the database.
And you create the pl/sql wrapper again as follows:
create or replace FUNCTION TOBY (pfilename in varchar2) RETURN VARCHAR2 iS
language java name
'ReadFileIntoByteArray.chk_file(java.lang.String) return byte[]';
And you call the function from sqlplus as follows:
Sql>Set serveroutput on size 20000;
Sql> call dbms_java.set_output(20000);
Sql> Select toby(“filename”) from dual; --
this file should be accessible, I mean you will not be able to send a file on your pc, from sql plus as sql/plus is running on your db server.
You will be able to see the output in sql plus:
If you are running it from the APEX:
When we use file browser widget from APEX, the file is stored in APEX_APPLICATION_FILES table. And we retrieve that into a variable and pass this variable to the function as follows:
DECLARE
scan_failed EXCEPTION;
x varchar2(400);
z number;
BEGIN
select filename into x from wwv_flow_files where name = :P1_FILE_NAME;
select my1.mycheck(x,toby(x)) into z from dual;
if z = 0 then
:P1_SUBJECT:= 'PASSED';
else
:P1_SUBJECT:= 'FAILED';
end if;
:P1_SCAN_RESULT := '** Scanning File **';
IF UPPER(:P1_SUBJECT) = 'PASSED' THEN
BEGIN
:P1_SCAN_FLAG := 'PASSED';
:P1_SCAN_RESULT := :P1_SCAN_RESULT || ' ** File passed scan **';
END;
ELSIF UPPER(:P1_SUBJECT) = 'FAILED' THEN
BEGIN
:P1_SCAN_FLAG := 'FAILED';
:P1_SCAN_RESULT := :P1_SCAN_RESULT || ' ** File failed scan **';
END;
ELSE
BEGIN
:P1_SCAN_FLAG := 'UNKNOWN';
:P1_SCAN_RESULT := :P1_SCAN_RESULT || ' ** Scan Is Not Conclussive **';
END;
END IF;
--IF :P1_SCAN_FLAG = 'FAILED'
-- THEN RAISE scan_failed;
--END IF;
EXCEPTION
WHEN OTHERS THEN
DELETE from APEX_APPLICATION_FILES WHERE name = :P1_FILE_NAME;
RAISE_APPLICATION_ERROR (-20000, 'seb OTHERS error encountered - file upload not allowed. Possible virus detected !');
raise;
END;
ACKNOWLEDMENTS:
1) JOHN SCOTT – who suggested this ICAP API in one of the threads which is my initial starting point in this direction.
2) VLAD KOFMAN who wrote the article on WWW.DEVELOPER.com
3) Mr. KIRAN –One of the engineers from Metalink, who helped me at every step of getting this java programs and pl/sql wrappers working. But for him, I would have not completed my project.

Similar Messages

  • Scan a file for virus before upload

    In many CRM functions, eg - Activities, Mkt Planner, etc., there is a tab for uploading/attaching files.  How can we scan the file for virus before saving?  We have a Basis 620, so we can't use the Virus Scan Interface because it is available from Basis 640 onwards.
    I am looking for two things - 1. A method to scan for virus and 2. A user exit where this can be implemented before saving.
    Thanks.

    http://forum.java.sun.com/thread.jspa?threadID=499566&tstart=200

  • Scanning an uploaded file for viruses

    Hi All,
    I want scan an uploaded file for viruses.i there is any JAVA API where i can connect to Scan engine.
    i have gone through the Symantic scan engine. where it provides the ICAP protocol to communicate with ScanEngine but i dont know how to communicate with that using java.
    Please help me out with this.....
    Thanks In Advance

    Raghavendra_LR wrote:
    Hi All,
    I want scan an uploaded file for viruses.i there is any JAVA API where i can connect to Scan engine.
    i have gone through the Symantic scan engine. where it provides the ICAP protocol to communicate with ScanEngine but i dont know how to communicate with that using java.
    Well buddy i'm afraid there are no good open source solutions available for this however,we have commercial solutions provided by respective vendors.
    [http://www.ciao.co.uk/McAfee_E_Business_Server_Java_API_Complete_package__5529793]
    or the below provided a Java client / Local SDK libraries for which supports number of anti-virus softwares
    [http://www.opswat.com/oesislocal.shtml ]
    Hope that helps :)
    REGARDS,
    RaHuL

  • Gmail could not scan zip file for viruses

    I received a zip file.  MacBook Pro tries to scan for virus and I received a msg that "Gmail could not scan this file for viruses".  Does the problem lies with the zip file OR there is some software that I need to download & install before I could download the zip file?

    You are wasting your time scanning for viruses.
    I have been using Macs since 1984.
    I've worked at companies with 50+ Macs.
    I've used every Mac OS From 1.1 to 10.6.7
    I have never seen a Mac virus or known anyone that has.

  • How do I scan my ipad3 for virus

    Do I need to scan my iPad for viruses?

    In addition to what the others said, the same security features that mean there's no malware also means that there are no proper anti-virus tools. Apps simply don't have the kind of access to the file system on iOS to be able to scan for malware. So, even if you don't believe that there is no malware for iOS, you still wouldn't be able to find a malware scanner, because there aren't any. There are a couple that can, at most, scan your e-mail messages and files in online accounts like Dropbox, because those things exist outside the iOS ecosystem.

  • How do I upload files onto Pages on my iPad?

    How do I upload files onto pages on my iPad?

    You can email them to yourself and then open them in Pages by using the "open in" option in the mail app when you are viewing the attachment, you can use DropBox, or you can use iOS file sharing.
    Connect the iPad to your computer and launch iTunes. Click on your iPad's name on the left side of iTunes under  "Devices" in order to select it. Click on the Apps Tab in the iTunes window on the right. Find the Pages App in the list of File Sharing apps under the main list of apps and click on it. Then drag the files from your desktop that you want to move into the document sharing window on the right - next to the the Pages app. You can also use the Add button and navigate to the documents that way to select them. Sync your iPad if you choose to do so and then eject it when the sync completes.
    Launch the Pages app and then click on the + in the upper left corner to add a document. Select - Copy from iTunes and a window will pop up with a list of all of the documents that you dragged into the window on the computer when the iPad was connected to iTunes. Select the document from there.
    This article explains if for you as well.
    http://support.apple.com/kb/HT4088

  • Receiving Mac Zip File for virus removal

    Receiving Mac Zip File for virus removal. Randomly comes up through firefox.  I don't open it but I cant remove it from applications.  Any help appreciated.  Also Mac doesn't have a built in defense like that does it?

    When you created this post, there was, at the top of the discussion, and all Apple Community, this:
    Announcement:  Apple recently published -  How to avoid or remove Mac Defender malware
    How to avoid or remove Mac Defender malware

  • How can i upload files from one ip address to another  ip address machine ?

    how can i upload files from one ip address to another ip address machine ?

    i need to copy files from one client m/c to server m/c like sftp
    please suggest solution on this

  • How to generate xml-file for SAP Fiori (UI add-on) with Solution Manager 7.0.1?

    Hello Guru,
    could you please help with my issue with Fiori Installation.
    We want to install SAP Fiori Front-End (GW+UI) on the Sandbox system with SAP Netweaver 7.3.1. (SP14)
    Gateway component (SAP GW CORE 200 SP10) was installed without any problems.
    But I need to install UI-add-on (NW UI Extensions v1.0) and when I try to install it via SAINT, transaction said me that I need to generate xml-file for it (as in General notes for UI add-on mentioned).
    But I have Solution Manager 7.0.1 and in MOPZ for this version I do not have option  "install Add-on" as it written in Guide for ui add-on installation.
    Could you please help me with advice how to generate xml-file for UI add-on installation on SolMan v.7.0.1?
    If where is no way, but only to upgrade Solution Manager, maybe somebody could give me xml-file for your system (for NW 731) and I will change it to my needs, I will be very grateful!
    Thanks in advance for any help!!!
    Bets regards,
    Natalia.

    Hello Guru,
    could you please help with my issue with Fiori Installation.
    We want to install SAP Fiori Front-End (GW+UI) on the Sandbox system with SAP Netweaver 7.3.1. (SP14)
    Gateway component (SAP GW CORE 200 SP10) was installed without any problems.
    But I need to install UI-add-on (NW UI Extensions v1.0) and when I try to install it via SAINT, transaction said me that I need to generate xml-file for it (as in General notes for UI add-on mentioned).
    But I have Solution Manager 7.0.1 and in MOPZ for this version I do not have option  "install Add-on" as it written in Guide for ui add-on installation.
    Could you please help me with advice how to generate xml-file for UI add-on installation on SolMan v.7.0.1?
    If where is no way, but only to upgrade Solution Manager, maybe somebody could give me xml-file for your system (for NW 731) and I will change it to my needs, I will be very grateful!
    Thanks in advance for any help!!!
    Bets regards,
    Natalia.

  • How to create xpi file for my own extension?

    I have created my own extension and directly added profile extension folder in my system.its working fine. but while installing extension using .xpi file its produce error "Install script not found
    -204".Please explian me how to create .xpi file for my extension folder.
    I hope you can help this issues.
    Thanks in advance.
    Regards
    vasanthi

    See this:
    https://developer.mozilla.org/en/Building_an_Extension

  • How to import WMV file for use in adobe programs, especially After Effects and/or Premier?

    How to import WMV file for use in adobe programs, especially After Effects and/or Premier?

    I have the latest adobe creative cloud and i'm using Mac 10.8.2
    My client gave me a wmv file that she wants some people blurred out in the background but when I go to import the media, it's greyed out. I'm assuming that After Effects will be the best solution for this, but maybe there is another way.
    I can purchase a video converter and convert it to .mov but that costs extra money that I don't want to spend just to do this one project.

  • How can i upload files in servlets and also using jsp

    means that uploading files(.doc) or any files by using servlets and jsps

    yawmark wrote:
    saichand wrote:
    means that uploading files(.doc) or any files by using servlets and jsps
    [http://www.google.com/search?q=How+can+i+upload+files+in+servlets+and+also+using+jsp]
    ~Good topic titles are indeed brilliant search keywords. It's sad to see that it won't even come in the mind of the topicstarters to Google it before posting the topic.

  • Since Adobe 11why Norton scanning incoming attach for virus NOT on my system

    Confused:
    Since Adobe 11why Norton scanning incoming attach for virus NOT on my system use VIPRE?  Is it preinstalled with Adobe 11 or something?  Thanks!

    I completely do not understand what you are asking; can you rephrase your question?

  • How to make jar file for this compilation method ?

    can any one tell me how to make jar file for this compilation
    D:\java\browser\IEInJava>javac -classpath jdic.jar;. IEInJava.java
    D:\java\browser\IEInJava>java -cp jdic.jar;. IEInJava
    *this is a compile code:-*
    D:\java\browser\IEInJava>javac -classpath jdic.jar;. IEInJava.java
    *and this is a run code:-*
    D:\java\browser\IEInJava>java -cp jdic.jar;. IEInJavanow how make JAR file ?

    Assuming IEInJava only uses classes inside the jdic jar, this is one way. D:\java\browser\IEInJava> jar cf yourjar.jar IEInJava.classThen to run it you would use D:\java\browser\IEInJava> java -cp jdic.jar;yourjar.jar IEInJavaAnother way would use the jar manifest file to specify the Main-Class and Class-Path.

  • How to build ear files for ADF application using Ant task

    How to build ear files for ADF applications using Ant. The ojdeploy ant task can not find application-level deployment profiles. I am trying to automated build and release for ADF application.
    Any help is highly appreciated.
    Thanks
    Shiva

    Hi Timo
    Thanks for your reply.
    I have successfully created ear file using ojdeploy on jenkins. however when am trying to auto deploy using WLDeploy ant task am getting the following
    error :
    weblogic.application.ModuleException: :oracle.mds.config.MDSConfigurationException:MDS-01335: namespace "/oracle/webcenter/quicklinks/scopedMD" mapped to metadata-store-usage "WebCenterFileMetadataStore" but its definition was not found in MDS configuration
    Please advise how to handle this.
    As am a newbie to ADF, could you please advise if it is possible for the ADF application deployments can be automated for different environments using jenkins due to this MDS dependencies.
    Appreciate your help.
    Thanks
    Shiva

Maybe you are looking for

  • Printing custom sizes on HP Officejet Pro 8600 Plus from Macbook Pro

    I am having trouble setting up a Word Document (Word for Mac 2011) to print in a custom size on my HP Officejet Pro 8600 Plus.  I'm using a Macbook Pro running Yosemite.   I would like to print on a card stock that is 4.5 in x 13.5 in.  I have tried

  • How do you access a variable in an KM (knowledge module)

    I am building a Knowlege Module and I would like to access a varible set outside the KM. Can a KM access a Project or Global variable? thanks in advance

  • ICloud deleted all my contacts and photos. How can I get it back?

    All my contacts and photos from my iPhone and from my ICloud webpage are gone. I have an ICloud backup from yesterday morning so i tried restoring, but my contacts disappeared again after a few seconds. It says that i have 1000 photos, but I can't se

  • Problem in Hierarchy column

    Hi All, Currently working in OBIEE 11g, I have kept product hierarchy column ( Product Total - > Product Group -> Product Sub Group -> Product Detail ) as dashboard prompt, created graph with the following columns product hierarchy in report prompt l

  • BTE for material classification

    Hi, im searching for a BTE which trigger modification on material classifications. I found EVENT 4004 and 4005, but they not work. I change classification with mm02 under the classification tab. Have someone an idea if there is an EVENT for this? Or