>Simon and I were referring to the existing extension-to-content-type mappings in mime.js, but I guess you're talking about web translation, where those aren't used, and for that a HEAD request is done if a content type isn't specified. 

AFACT, `getMIMETypeFromExtension` and the associated mapping table is not used anywhere in Zotero.

>I'm not up on the specifics of this code, but can we make this automatic based on the extension and just let translators override the defaults if necessary?

So you would want to first try to determing MIME type based on extension and only then try to fetch MIME type from server? This is probably OK 99% of the time.

>It's also annoying that HEAD requests are necessary at all, given that we're downloading the file (and therefore having either the same or more info on the content type) later anyway.

That's not entirely true, since whether the attachment will be saved or not is determined from the MIME type. So if you have disabled file attachments, but snapshots are on, you would then end up downloading the entire PDF (for example) and choose to discard it. At least that's the reason that I thought this was implemented the way it is.

Either way, this would have to wait for the next Zotero release. Can we push this as is in the mean time?