diff --git a/netbox/extras/tables/tables.py b/netbox/extras/tables/tables.py
index 09fc5cc3c..996578dab 100644
--- a/netbox/extras/tables/tables.py
+++ b/netbox/extras/tables/tables.py
@@ -43,7 +43,7 @@ IMAGEATTACHMENT_IMAGE = """
{% endif %}
-{{ record }}
+{{ record.filename|truncate_middle:16 }}
"""
NOTIFICATION_ICON = """
diff --git a/netbox/utilities/templatetags/builtins/filters.py b/netbox/utilities/templatetags/builtins/filters.py
index 2d4cbba69..985dce143 100644
--- a/netbox/utilities/templatetags/builtins/filters.py
+++ b/netbox/utilities/templatetags/builtins/filters.py
@@ -252,3 +252,16 @@ def isodatetime(value, spec='seconds'):
else:
return ''
return mark_safe(f'{text}')
+
+
+@register.filter
+def truncate_middle(value, length):
+ if len(value) <= length:
+ return value
+
+ # Calculate split points for the two parts
+ half_len = (length - 3) // 2 # 3 for the '...'
+ first_part = value[:half_len]
+ second_part = value[len(value) - (length - 3 - half_len):]
+
+ return mark_safe(f"{first_part}…{second_part}")