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',
],
],
| Key | Default | Description |
|---|---|---|
enabled | true | Show/hide the attachment upload UI |
disk | 'public' | Laravel filesystem disk for storage |
max_size | 10240 | Maximum file size in kilobytes |
allowed_types | images, pdf, text, word | Array 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 diskoriginal_name-- Original filename for displaymime_type-- MIME type for rendering decisionssize-- File size in bytesdisk-- 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")