Zipping a file after upload, file_column

I’m using file_column and I’m not sure where to put code for zipping
(compressing) a file.
I want to upload an audio file, but compress it as a .zip file before
saving.
That way I can force downloads rather than having audio files load in
visitor browsers.

question is: Where do put code to do the zipping, so that it occurs
before the file is saved?
I want the database entry to show the path to the zip file and not to
any original.

I don’t mind if the original ends up in the temp directory that
file_column uses, but I don’t want the original file in the
file_column generated directory, I want that to be the zipped file.