Salesforce: Trigger on Attachment – Restricting user from attaching files with specific extensions

By default Salesforce don’t allow admin to configure or restrict user from adding specific type of files. Admin may need that user should not be able to attach files of type exe, dll which can have virus in them. Also there is no virus check is done when file is getting uploaded to the Salesforce.

But Salesforce does allow writing trigger on the Attachment Object by which you can implement such restrictions. Following is the snippet of the code which will restrict user from adding the files with extension mentioned in the set list. You can also edit the code and do the reverse by checking if extension exist in the set then only allow attaching the file.

trigger AttachmentTrigger on Attachment (before insert) {
set<String> setExtNotAllowed = new set<String> {‘exe’,’dll’};
for (Attachment attachment :Trigger.new)
{
String strFilename = attachment.Name.toLowerCase();
List<String> parts = strFilename.splitByCharacterType();
if(setExtNotAllowed.Contains(parts[parts.size()-1]))
{
attachment.addError(‘File with extension exe or dll could not be attached!!’);
}
}
}

Once trigger code is up and running, whenever Salesforce tries to attach any file with extension exe or dll he will come across following error message.

AttachmentException

Leave a Reply

%d bloggers like this: