Weave Code
Weaver
Helps Laravel developers discover, compare, and choose open-source packages. See popularity, security, maintainers, and scores at a glance to make better decisions.
Feedback
Share your thoughts, report bugs, or suggest improvements.
Subject
Message
Nova File Upload Field

Nova File Upload Field Laravel Package

genealabs/nova-file-upload-field

A Laravel Nova field that adds a flexible file upload input to your resources, with support for multiple files, storage disks, and customizable validation. Drop it into any Nova resource to replace the default file field.

View on GitHub
Deep Wiki
Context7

A Laravel Nova field.

Frequently asked questions about Nova File Upload Field
How do I install genealabs/nova-file-upload-field in a Laravel Nova app?
Install it with Composer by running composer require genealabs/nova-file-upload-field. Composer resolution only works where the private, license-gated laravel/nova repository is already configured, so confirm Nova licensing and repository access first. Then add the field class to the fields method of your Nova resource.
Does genealabs/nova-file-upload-field support Laravel 12 and Nova 5?
The repository is archived and frozen at the May 2024 release line, 0.6.0, which targeted Laravel 11 compatibility. There is no verified Nova 5 support and no published compatibility matrix covering Laravel 12 or newer PHP versions. Treat it as unsupported on the current Nova and Laravel line until you prove compatibility in a timeboxed spike. A stale compiled Vue component can fail silently in the browser, so verify the field actually renders and reacts before committing.
How do I configure the disk, path, and original filename for the Nova file upload field?
Configure the field fluently in your Nova resource with disk(), path(), and storeOriginalName(). The package delegates filesystem policy to the host application through Laravel disks, so storage configuration stays in config/filesystems.php rather than inside the package. That boundary makes the field easier to swap later, but it also means disk ACLs and private versus public visibility remain your responsibility.
Can I upload multiple files in one Nova field?
Yes, the field supports multiple files as part of its flexible upload input. You configure it on the Nova resource and store files through the configured Laravel disk and path. Apply validation consistently and test multi-file behavior on the exact Nova and Laravel versions you plan to run, because the package has no current compatibility evidence.
Is file validation enforced server-side or only in the Vue component?
The field exposes acceptedTypes() and maxSize() configuration, but the archived status means you must verify where enforcement actually happens in the upload routes and controller. Do not rely on client-side checks in the Vue component alone. Add server-side MIME sniffing, extension allowlists, and size limits in your Laravel validation layer, and confirm they apply to every upload path.
Does deleting a Nova resource remove uploaded files from disk?
Do not assume deletion cleans up objects; removing a record may orphan files on disk. The package offers an optional prunable() configuration, but you need to test whether it reliably covers your usage at volume. Add explicit cleanup logic or a scheduled pruning job if orphaned files are unacceptable. Verify behavior against your actual disk and path configuration.
What are the security risks of using an archived file upload package in production?
File upload is one of the highest-risk endpoints in any application, covering MIME sniffing, extension allowlists, size caps, path handling, storage ACLs, and bundled JavaScript dependencies. Once upstream stops, those concerns become your responsibility. The realistic worst case is a private-disk misconfiguration, such as a public ACL on a disk assumed private, with no maintainer to patch it. Budget for a security review before production use.
What is the difference between this field and Nova's built-in File field?
The package adds multiple files, storage disk selection, path customization, and validation options beyond the default Nova file field. However, Nova's built-in File field may already cover your use case, especially if you only need a simple upload input. Evaluate your actual gap, such as a private disk with a custom prefix, before adopting an archived package. If the built-in field suffices, avoid the added maintenance risk.
Is genealabs/nova-file-upload-field maintained, and should I fork it?
The repository is archived with a single maintainer, negligible adoption, zero dependents, and 53 stars, so there is no escalation path or ecosystem pressure to fix defects. The MIT license makes forking legally trivial, which is why adopting it as-is is not a real option if you need the capability. A sustainable path means owning the fork with a repository, CI, release cadence, and a named owner. Budget that ownership cost before deciding to vendor it.
How do I test the Nova file upload field in a staging environment?
Create a Nova resource with the field, configure a private disk and custom path, and exercise multi-file uploads, validation failures, and deletion behavior. Confirm the compiled Vue component loads and that the field is reactive in the browser rather than blank. Run the test on your exact Nova, Laravel, and PHP versions, including PHP 8.3 or 8.4 if that is your target. Treat the effort as a timeboxed spike with a written exit criterion rather than a checklist.
Weaver

How can I help you explore Laravel packages today?

Conversation history is not saved when not logged in.
Prompt
Add packages to context
No packages found.
jinas/dhivatar
store-doc/laravel-storage-driver
plus-it/laravel-translation-manager
diephp/perhaps
diephp/telegraph
osmaviation/spreadsheet
microsoft/fluentui-system-icons
mmccook/php-json-canonicalization-scheme
middlewares/firewall
qubiqx/montapacking
nyoncode/laravel-package-console
pnscripts/filament-broadquill-lite
pnscripts/laravel-sentfold-lite
vleap/mx-sdk-laravel-internal
twidpay/utils
htetmyathlaing/scout-elasticsearch-driver
artisan-toolbox/front-awesome
ls/client-assistant
users-au/laravel-client
cgv/localized-resource