Mimetypes management
Mimetype aliases
Nextcloud allows you to create aliases for mimetypes, so that you can display custom icons for files. For example, you might want a nice audio icon for audio files instead of the default file icon.
By default Nextcloud is distributed with
nextcloud/resources/config/mimetypealiases.dist.json
.
Do not modify this file, as it will be replaced when Nextcloud is updated.
Instead, create your own nextcloud/config/mimetypealiases.json
file with your custom aliases. Use the same syntax as in
nextcloud/resources/config/mimetypealiases.dist.json
.
Once you have made changes to your mimetypealiases.json
, use the occ
command to propagate the changes through the system. This example is for
Ubuntu Linux:
$ sudo -u www-data php occ maintenance:mimetype:update-js
# you may also need to update the mimetype for existing files, see nextcloud/server#30566
$ sudo -u www-data php occ maintenance:mimetype:update-db --repair-filecache
See Using the occ command to learn more about occ
.
Some common mimetypes that may be useful in creating aliases are:
- image
Generic image
- image/vector
Vector image
- audio
Generic audio file
- x-office/document
Word processed document
- x-office/spreadsheet
Spreadsheet
- x-office/presentation
Presentation
- text
Generic text document
- text/code
Source code
Mimetype mapping
Nextcloud allows administrators to specify the mapping of a file extension to a
mimetype. For example files ending in mp3
map to audio/mpeg
. Which
then in turn allows Nextcloud to show the audio icon.
By default Nextcloud comes with mimetypemapping.dist.json
. This is a
simple json array.
Administrators should not update this file as it will get replaced on upgrades
of Nextcloud. Instead the file mimetypemapping.json
should be created and
modified, this file has precedence over the shipped file.
Icon retrieval
When an icon is retrieved for a mimetype, if the full mimetype cannot be found, the search will fallback to looking for the part before the slash. Given a file with the mimetype ‘image/my-custom-image’, if no icon exists for the full mimetype, the icon for ‘image’ will be used instead. This allows specialised mimetypes to fallback to generic icons when the relevant icons are unavailable.