- How do I install imsyuan/filament-image-caption-upload?
- Install it with Composer using composer require imsyuan/filament-image-caption-upload. Because it is a Filament form component rather than a full plugin panel, you do not need to register a service provider or run extra panel configuration in most cases. Check the repository README for any publishable assets or config, since no build step is required.
- Does this package require npm or a frontend build step?
- No. The package is described as zero build step, meaning the caption input UI ships ready to use without compiling assets with Vite or Mix. That makes it convenient for projects that want to avoid maintaining a custom Filament asset pipeline. You only need your normal Laravel and Filament installation.
- How do I add editable captions to image uploads in a Filament form?
- You swap the standard Filament FileUpload component for the caption-enabled component provided by this package inside your form schema. Each uploaded image then renders with its own caption text input next to the preview, so editors can describe images while uploading. Multiple images can be added in one upload, each with an independent caption field.
- Is it safe to reorder images after uploading them?
- Yes. The component is built to be reorder-safe, so captions stay attached to the correct image when items are moved in the upload list. That matters because Filament's FileUpload supports drag-and-drop ordering by default, and naive caption implementations lose their association when the order changes. You can let editors rearrange a gallery without re-entering captions.
- What happens if two uploaded images have the same filename?
- The package is duplicate-filename safe, so uploading a second image such as photo.jpg does not cause its caption to overwrite or mix with the first one. Filament and Laravel's storage layer already generate unique stored paths, but the caption tracking here is keyed so collisions in the original filename do not break the mapping. This is useful when users upload batches of similarly named camera exports.
- Which Laravel and Filament versions are supported?
- This is a Filament form component, so it targets the Filament major version declared in its composer.json constraints. Before installing, check the require section on Packagist or in the repository to confirm it matches the Filament version your panel runs, and verify the minimum PHP version as well. Laravel compatibility generally follows whatever your Filament release supports.
- How do I store the captions in my database?
- Captions are submitted as part of the form state alongside the uploaded file, so you persist them the same way you persist any other field in your create or edit form. Common approaches are a JSON column on the parent model, or a related images table with image path and caption columns. See the README for the exact state shape when wiring up your save logic.
- Can I upload multiple images with individual captions at once?
- Yes. The component supports multiple uploads and gives each image its own caption input, which makes it suitable for building captioned galleries in an admin panel. Editors can select several files in one go and then fill in captions for each preview before saving. This avoids the repetitive flow of uploading and saving one image at a time.
- Does adding this package break the existing FileUpload features I rely on?
- It extends Filament's FileUpload rather than replacing the underlying storage, validation, or image handling, so standard options like disk, directory, visibility, and image resizing should continue to work as configured on the component. As with any third-party form component, test your specific configuration in a staging environment before rolling it out. Reviewing the README for documented limitations is worthwhile if you rely on advanced upload features.
- Is this package actively maintained, and are there alternatives?
- Maintenance activity should be checked on the GitHub repository, where the commit history and open issues show how current the package is. If you need a different approach, you can build caption inputs yourself with a Filament Repeater containing a FileUpload and a TextInput, which gives more control but requires custom state handling for reordering and duplicate filenames. This package mainly saves you that wiring work.