Usage
MIME Fix inside the file list
No separate module to learn. A Scan MIME button is injected into the toolbar of the TYPO3 File > Filelist module for the folder you are viewing.
It reports every file in that folder where:
- the actual file content does not match what the extension claims
it is (
finfovs. extension), or - the database
mime_is out of sync with what it should be.type
Supported types: jpg, jpeg, png, gif, webp, bmp,
tiff/tif, plus the text-based css, js, yaml/yml and
dotx.
| Situation | What happens |
|---|---|
Image content does not match extension (for example a PNG saved
as .jpg) | Converted in place via ImageMagick / GraphicsMagick, written to a temp file first so a failed conversion never corrupts the original. |
Photoshop file (.psd content, wrong extension) | Converted via the PHP Imagick extension if available; falls back
to ImageMagick convert, reading only the merged/composite layer. |
css / js / yaml / yml / dotx | finfo cannot detect these correctly, so only the
sys_ record is corrected. |
Select the issues, click Fix selected. The FAL index is re-read afterwards so TYPO3 immediately reflects the corrected type.
File Cleanup
File > File Cleanup. For when you trust the result and want the files gone.
- Lists files with zero active
sys_and zero soft references (file_ reference sys_), that is, unreferenced by any page, content element or FlexForm.refindex - Filter by Present on disk / Physically missing / All, by extension and by folder depth (level 1 to 3, or unlimited).
- Download as ZIP before deleting, per-file download links and per-row "physically missing" badges.
- Delete selected or Delete all filtered. The bulk delete requires typing the exact file count to confirm.
- Uses the file storage tree on the left, the same as the file list.
Warning
File Cleanup deletes physical files and their
sys_ /
sys_ rows immediately. There is no undo. Double-check
your filters before running a bulk delete.
Duplicate report
File > Filelist → Find duplicates button in the toolbar
(admins only). Lists every group of files in the storage with identical content
(same
sys_) where at least one copy lies in the current folder
or below; the other copies are looked up in the whole storage.
- Only real copies count. Each copy is checked on disk and sizes are read
from disk;
sys_andfile. missing sys_are not trusted. Records whose file is gone are left out and counted in the summary. Severalfile. size sys_records pointing to the same path count as one copy (their usages are added up).file - Sorted by wasted space (
(copies − 1) × size), 25 groups per page, with lazy-loaded thumbnails. - Per copy: path, file-level metadata (title, alternative, description),
number of file references and soft references (for example
t3://links in RTE fields). Click the usage count to see each reference with edit links that return to the report.file - Suggested keeper (star icon): the copy with the most usages, then the oldest one.
- Badges when copies carry different file-level metadata or when soft references exist.
- CSV export of the folder's groups: one row per file reference (or per copy without references).
Deep check and delete
Each copy has a Deep check that searches the whole database live for usages of that one file:
sys_(every workspace and language),file_ reference - the reference index
sys_(relation fields, links in RTE/link fields, form definitions),refindex - a text search in every string/text/JSON column of every table for the
public path (also URL-encoded), the combined identifier
(
1:/),path/ file. jpg t3://and the legacyfile?uid=N file:syntax, exact-matched,N - other
sys_records indexing the same physical file.file
Technical tables (caches, logs, history, sys_,
sys_,
sessions, tx_) are skipped and listed. Usages by deleted records
are shown but do not block deletion. Text matches stop at 50.
Only when the check finds zero active usages does a Delete file
button appear. After a second confirmation the server runs the deep check
again and refuses (HTTP 409) if the file is in use. Deletion goes through
FAL (physical file,
sys_, metadata, processed files) and is written
to
tx_ as delete_.
The report itself is read-only; nothing is merged or re-linked automatically.
Oversized images
File > Filelist → Oversized images button in the toolbar (admins only). Lists images in the current folder (subfolders optional) whose width or height exceeds the configured maximum, with the estimated saving if resized to fit.
- Maximum width/height from the extension configuration (default 1900 × 1900 px). Checked types:
jpg,jpeg,jfif,png,webp,tif,tiff,bmp(gifis left out because it may be animated). Max width/height and Include subfolders can be changed in the report for that view only. - Dimensions come from
sys_; files are checked on disk and sizes read from disk. Images missing on disk or without known dimensions are left out and counted in the summary.file_ metadata - Estimated saving =
size ×. Sorted by largest saving, 25 per page.(new pixels / old pixels)
Resize
- Dry run: the image is converted on the server, the result is measured and discarded. A modal shows before/after dimensions and size.
- Resize now: the server checks the file again and replaces it
via FAL
replace.File ()
- Same file name, same
sys_uid, same format: references, crops and links keep working.file size,sha1and dimensions are updated; processed files are regenerated. - Resizes to the limits from the extension configuration (not the values
typed into the report form), aspect ratio kept. JPEG quality follows
$GLOBALS. The embedded colour profile is always kept.['TYPO3_ CONF_ VARS'] ['GFX'] ['jpg_ quality'] - The result is only kept when it is at least 10 KB smaller.
- Refused for: types other than
jpg,jpeg,png; files indexed by more than onesys_record; non-Local storage drivers; missing or non-writable files; images already within the limits.file
Warning
Resizing overwrites the original file. There is no backup and no entry
in
tx_. Back up fileadmin first if you may need
the originals.
Dashboard widgets
Requires typo3/cms-dashboard (optional). Widget group filefix with four widgets:
| Widget | Shows |
|---|---|
| Unused files | Number of unused files on disk |
| Reclaimable space | Disk space deleting them would free (for example 6.) |
| Unused files by type | Doughnut chart by extension |
| Unused space by type | Same chart, by size |
Each physical file is counted once, only when all its
sys_
records are unused, only when it exists on disk, with its size read from disk.
The result is cached in
sys_ (namespace tx_, key
stats.) and rebuilt when older than 1 hour, or on demand
via the schedulable filefix:stats:update command.
Widgets use the default storage.