I don’t have any code available for you, but in short, this is the way to go: download a virus scanner you can access through the command line, like http://www.pandasoftware.com/download/linux/linux.asp, dan call it from your RoR application to scan the file. I’m not sure what RadRails has to do with this, if you’re just looking for virus protection on your development pc, installing any of the known scanners (Avast, AVG, …) will protect your pc from incoming viruses. An even better option would be to just backup your pc, wipe it clean and install Linux (or install Linux as your primary OS besides Windows) on it or buy a Mac
Peter De Berdt
Peter Told Correctly.
1. Install an antivirus in the server. Eventhough it is linux.
2. upload the file using RoR
3. use ruby's system "command" or `command` to run the antivirus on
the uploaded file.
4. There is now to scan in the client side itself before uploading
unless the user does it manually.
I really recommend to take a look at http://www.clamav.net/ it's an
open source anti virus and I used it a lot to filter emails
attachments on smtp servers.
All what you have to do is to launch the antivirus cli command as you
would run any other o.s. command (as described at point 3 by Shrini).
The command will exit with a different exit code depending by the file
containing or not a virus. You can use this exit code to take
decisions about what to do with the file.
Clamav can run even as a daemon, but the cli command is probably a
simpler start point to call the anti virus from ruby.
On many linux distros the clamav package is already included so
apt-get/rpm commands will do the install job for you.
Obviously the virus scanning need to happen once the file is on your
server, but you can scan it imediately after the upload before
launching any other sort of processing on the file itself.
I would insert the scanning as a part of the model validation.
There's probably no way to trigger a scan client side but doesn't even
make sense, definitely you don't want to trust a client telling your
server an uploaded file is ok