mirror of
https://github.com/nextcloud/server.git
synced 2026-05-12 16:39:39 -04:00
PR #58224 introduced a raster→SVG conversion path in ImageManager::getImage() that breaks display of custom theming images. The root cause is a three-part bug chain: 1. getImage() attempted to convert raster images (PNG/JPEG) to SVG format, which Imagick cannot do meaningfully and produces broken output. 2. getMimeType() returns 'application/octet-stream' for extensionless stored files, so the Content-Type response header was wrong. 3. Stale .svg cache files persisted after image replacement, causing subsequent requests to serve the wrong format. Fix by: - Restricting the Imagick conversion to SVG→PNG only (not raster→SVG) - Reading the stored MIME type from IAppConfig for extensionless files in ThemingController::getImage() - Deleting .svg cache files in ImageManager::delete() - Injecting IAppConfig into ImageManager and reading the cachebuster via IAppConfig::getAppValueInt() so the URL returned after upload always carries the freshly-incremented value (IConfig::getAppValue() can return a stale cached value within the same request) - Updating the FileInputField Vue component to use a reactive cacheKey ref that increments on every upload, so the thumbnail refreshes even when the MIME type of the new image is the same as the old one AI-Assisted-By: Claude Sonnet 4.6 <noreply@anthropic.com> Signed-off-by: Anna Larch <anna@nextcloud.com> |
||
|---|---|---|
| .. | ||
| admin_audit | ||
| appstore | ||
| cloud_federation_api | ||
| comments | ||
| contactsinteraction | ||
| dashboard | ||
| dav | ||
| encryption | ||
| federatedfilesharing | ||
| federation | ||
| files | ||
| files_external | ||
| files_reminders | ||
| files_sharing | ||
| files_trashbin | ||
| files_versions | ||
| lookup_server_connector | ||
| oauth2 | ||
| profile | ||
| provisioning_api | ||
| settings | ||
| sharebymail | ||
| systemtags | ||
| testing | ||
| theming | ||
| twofactor_backupcodes | ||
| updatenotification | ||
| user_ldap | ||
| user_status | ||
| weather_status | ||
| webhook_listeners | ||
| workflowengine | ||