Comments Logo
1.x
Essentials

Attachments

File uploads for comments.

Overview

Comments support file attachments for both images and documents. Images are displayed inline within the comment body, while documents appear as downloadable links.

Configuration

// config/comments.php
'attachments' => [
    'enabled' => true,
    'disk' => 'public',
    'max_size' => 10240, // KB (10 MB)
    'allowed_types' => [
        'image/jpeg',
        'image/png',
        'image/gif',
        'image/webp',
        'application/pdf',
        'text/plain',
        'application/msword',
        'application/vnd.openxmlformats-officedocument.wordprocessingml.document',
    ],
],
KeyDefaultDescription
enabledtrueShow/hide the attachment upload UI
disk'public'Laravel filesystem disk for storage
max_size10240Maximum file size in kilobytes
allowed_typesimages, pdf, text, wordArray of allowed MIME types

Disabling Attachments

'attachments' => [
    'enabled' => false,
],

This removes the file upload UI from the comment form entirely.

Storage

Attachments are stored via Livewire's file upload mechanism. Each attachment record tracks:

  • file_path -- Path on the configured disk
  • original_name -- Original filename for display
  • mime_type -- MIME type for rendering decisions
  • size -- File size in bytes
  • disk -- Storage disk name

When a comment is deleted, its attachments are cascade deleted from the database. The physical files are removed from the disk.

Helper Methods

The Attachment model (Relaticle\Comments\Models\Attachment) provides:

$attachment->isImage();       // Check if attachment is an image
$attachment->url();           // Get the storage URL
$attachment->formattedSize(); // Human-readable size (e.g., "2.5 MB")
Copyright © 2026