- How do I install and set up Larupload in a Laravel application?
- Install it with Composer using composer require mostafaznv/larupload, then publish the package config and migrations with the vendor:publish command listed in the README. You then add a metadata column (typically JSON) to each table whose model will own uploads, and declare the attachments on the model. Because the package is ORM-centric, the setup work is less about wiring and more about agreeing on your disk layout and metadata schema before you write data.
- Which Laravel and PHP versions does Larupload support?
- Confirm this against Packagist and the composer.json constraints of the exact version you intend to pin, and match it to your upgrade horizon. Release metadata for smaller packages is often stale, so do not assume release cadence or version support from a single listing. Composer's constraint solver will surface the real compatibility if you attempt an install in a throwaway branch first.
- How does Larupload attach files to Eloquent models?
- Media is attached through a trait on the model, with per-model attachment definitions that control the disk, naming strategy, image sizes, and video or audio handling. The resulting metadata is persisted alongside the model row, so URLs and details are read back through the attachment accessor rather than queried separately. This makes it a natural fit when media is simply a property of a domain entity such as a user avatar, product image, or article hero.
- Does Larupload resize images and generate video thumbnails automatically?
- Yes, the package provides automatic image resizing, video thumbnail generation, and metadata extraction for the files you attach. Those features depend on an image manipulation library and on FFmpeg/FFprobe being available in the environment where processing runs. Test with a real video sample early, because codec availability varies between FFmpeg builds and can change what thumbnails and metadata you actually get.
- Does Larupload require FFmpeg installed on the server?
- FFmpeg and FFprobe are required for the video and audio features, so adopting the package is an infrastructure commitment rather than a pure Composer dependency. That is standard in most Laravel shops, but it means your deployment images and local development environments must both provide a suitable build. It also adds operational variance, since FFmpeg behavior differs by build and enabled codecs.
- Can Larupload process video and heavy transformations in a queue instead of during the request?
- Whether heavy transforms can be dispatched to a queue is one of the first things to verify for your use case, since running video thumbnailing inline in a request will hurt response times. Check the package config and source for job or queue support in the version you would pin, and test with an actual video upload rather than a tiny fixture. If async support is not built in, wrap the processing in your own jobs and force the heavy work off the request path.
- Which storage drivers does Larupload support, including S3?
- The package builds on Laravel's filesystem and Flysystem abstraction, so local disk support is a given. S3 and other object storage support should be confirmed against the specific version you pin rather than assumed from the README, along with how URLs are resolved per disk. If your target is S3-compatible storage, verify it explicitly with a staged upload before committing.
- What does Larupload store in the metadata column, and does it lock me in?
- Attachment metadata is persisted in a package-specific shape in the column you add to the table, and URLs and details are read through the package accessor. The lock-in risk is real but manageable: if templates call package accessors directly everywhere, swapping uploaders later becomes a data migration plus a view refactor. Wrapping those accessors in your own presenters or model methods keeps the exit cost low. Also verify that deleting a model cleans up the original file and its derivatives, and whether a reconciliation command exists.
- Are private files in Larupload actually private, and does it support signed URLs?
- The package registers routes for serving files, so review path traversal handling, MIME sniffing, signed or protected URL support, and whether private attachments are genuinely gated before you expose it in production. Treat this as part of your own threat model: decide deliberately whether user-uploaded files are served through application routes or via a CDN or private bucket. For sensitive media, prefer protected disks and short-lived signed URLs over public paths.
- Is Larupload production-ready, and what are the alternatives?
- It is MIT licensed and functionally complete for common cases, but it has roughly 75 stars and a single maintainer, which is the dominant adoption risk. MIT means you can fork, though forking a media pipeline is a multi-week commitment you should price in rather than dismiss. It is a strong fit for a Laravel monolith with SQL, Redis queues, and local or S3 storage, and a weak fit if media is a first-class product surface such as a streaming platform or DAM, where a dedicated pipeline is the better call.