detect file infomation more accurately

There are several reasons for this tuning:
1. there is only one "pdf" item in current mine map, no need to find which is "pdf"
2. find "image" in the mine string is confusing and regard ".dmg" and ".iso"  as "image"s as well.
3. "image/*", "text/*", "audio/*" and "video/*" should be safe to match the mine infomation while the others are not (such as "application")
4. remove duplicated "pdf"