As already stated, use MediaEvents. The following is taken from the Umbraco website.
using Umbraco.Core; using Umbraco.Core.Events; using Umbraco.Core.Models; using Umbraco.Core.Services; namespace My.Namespace { public class MyEventHandler : ApplicationEventHandler { public MyEventHandler() { MediaService.Saved += MediaServiceSaved; } void MediaServiceSaved(IMediaService sender, SaveEventArgs e) { foreach (var mediaItem in e.SavedEntities) { // Do whatever you want with each entity } } } }
Update: if you're using newer versions of Umbraco (e.g. approximately v7.3.0) you should use:
MediaService.Saved += MediaServiceSaved