- How do I install blalmal10a/free-upload in a Laravel application?
- Install the package with Composer, then publish its config and component stubs. Wire the published Filament component into a form schema and set the upload endpoint, proxy base URL, paths, and timeout values in your environment or config. The package is designed for Laravel 11–13 and Filament 4/5, so confirm those constraints before installing.
- Does Free Upload support Laravel 11, 12, and 13?
- Yes, the package is intended for Laravel 11 through 13 applications. It is tightly coupled to Filament 4/5 as an upload component rather than a general Laravel file storage abstraction. Check the composer.json constraints against your application before adoption.
- Can I use Free Upload with Filament 3?
- No, Free Upload targets Filament 4 and 5, so teams on Filament 3 cannot adopt it without upgrading Filament first. That upgrade can be a separate and potentially large migration. If you must stay on Filament 3, use Filament's built-in upload field or another compatible package.
- What PHP version and extensions does Free Upload require?
- Free Upload requires PHP ^8.2 and the ext-gd extension. Verify both in CI and in your production container images before deploying, because older PHP environments will be blocked. The GD requirement is common but should still be confirmed explicitly.
- Where does Free Upload store uploaded files?
- Free Upload stores files upstream on FreeImage.host and keeps URL strings directly in Filament form state. It is not a storage-agnostic uploader for local disk, S3, or multiple providers. Because persistence depends on a third-party image host, review availability, rate limits, retention policy, and terms of service for production use.
- How does the in-app proxy route serve uploaded files?
- The package serves files through in-app proxy routes handled by FreeUploadFileController rather than relying on the previous external worker. Uploaded URLs point at your application's proxy routes, so your app becomes the serving path and must correctly handle caching, authentication, timeouts, and large-file behavior such as Range requests. Test these concerns under realistic file sizes before production.
- Are the Free Upload upload and proxy routes protected by default?
- Route security depends on the route prefix and middleware configuration you publish and set. Misconfiguration could expose the upload endpoint or uploaded files, so review the middleware applied to both upload and proxy routes. Apply authentication and authorization middleware appropriate to your Filament panel.
- Does Free Upload handle non-image files such as PDFs?
- The package uses a client-side PXVT encode/decode path that wraps non-image files as PNG data, which is a custom and undocumented design. This may introduce fidelity, size, and performance concerns for arbitrary file types. Verify byte-for-byte preservation and test your expected file size and type distribution before relying on it.
- What are the main production risks of using FreeImage.host as the storage backend?
- The primary risk is dependence on FreeImage.host and iili.io for persistence and fetch, including availability, rate limits, terms of service, and long-term viability outside your control. The package is at v1.0.0 with no prior stable history, so production hardening is unproven. The app also becomes a serving bottleneck through its proxy routes, so plan for caching, timeouts, and monitoring.
- How do I migrate away from FreeImage.host or the old external worker?
- There is no built-in storage-agnostic migration path, so plan a strategy for existing stored URLs and any redirects from the old worker. You can reconfigure endpoints and proxy settings, but moving to local disk or S3 would require custom work or a different package. If FreeImage.host becomes unavailable or changes its API, you will need a migration plan outside the package.