Download the PHP package timefrontiers/php-file without Composer

On this page you can find all versions of the php package timefrontiers/php-file. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.

FAQ

After the download, you have to make one include require_once('vendor/autoload.php');. After that you have to import the classes with use statements.

Example:
If you use only one package a project is not needed. But if you use more then one package, without a project it is not possible to import the classes with use statements.

In general, it is recommended to use always a project to download your libraries. In an application normally there is more than one library needed.
Some PHP packages are not free to download and because of that hosted in private repositories. In this case some credentials are needed to access such packages. Please use the auth.json textarea to insert credentials, if a package is coming from a private repository. You can look here for more information.

  • Some hosting areas are not accessible by a terminal or SSH. Then it is not possible to use Composer.
  • To use Composer is sometimes complicated. Especially for beginners.
  • Composer needs much resources. Sometimes they are not available on a simple webspace.
  • If you are using private repositories you don't need to share your credentials. You can set up everything on our site and then you provide a simple download link to your team member.
  • Simplify your Composer build process. Use our own command line tool to download the vendor folder as binary. This makes your build process faster and you don't need to expose your credentials for private repositories.
Please rate this library. Is it a good library?

Informations about the package php-file

timefrontiers/php-file

Multi-driver file storage for PHP 8.3+. Handles upload, retrieval, and streaming of files across local and cloud storage backends, with expiring/download-limited tokens, image size enforcement, and file ownership.


Requirements

Optional:


Installation

For S3 or MinIO support:


Database

Run sql/install.sql against your file database to create the required tables:

Migrating from linktude/php-file? See sql/migrate.sql.


Configuration

Call File::configure() once in your application bootstrap, before any File instance is created.

base[] holds global settings. drivers[] is a keyed map where each key is a driver name and the value is that driver's config. Only the drivers you declare are available at runtime.

Validation at configure time: default_driver must match a key in drivers[]. An unknown driver, a missing default_driver, or a non-array driver entry all throw a ConfigurationException immediately.

path_prefix — logical storage namespace

base.path_prefix is appended before /{owner} by the package automatically, producing a consistent storage path across all drivers:

Driver Physical / key location
local {upload_path}/{path_prefix}/{owner}/{filename}
s3 Object key: {path_prefix}/{owner}/{filename}
minio Object key: {path_prefix}/{owner}/{filename}

Set it dynamically at configure-time based on the user's access level:

Local driver options

Key Required Description
upload_path Absolute filesystem root where files are stored
storage_url Base URL for direct public access to files

S3 driver options

Key Required Description
bucket S3 bucket name
region AWS region (default us-east-1)
key AWS access key ID
secret AWS secret access key
endpoint Custom endpoint for S3-compatible stores
storage_url CDN override; if empty, native S3 URL is used

MinIO driver options

Key Required Description
endpoint MinIO server URL (e.g. http://localhost:9000)
bucket Bucket name
region Ignored by MinIO but required by the SDK (default us-east-1)
key MinIO access key
secret MinIO secret key
storage_url CDN/public URL override; if empty, URL is built as {endpoint}/{bucket}/{path}

Usage

Upload

Load an existing file

Direct URL (public files only)

Download tokens

Tokens are HMAC-signed, driver-agnostic, and enforce both time expiry and download limits.

On your download endpoint:

Update metadata

Lock a file

Locking computes a SHA-512 checksum and prevents further updates.

Delete a file


Default files

Map an owner string to one or more named file slots.


Folders


Storage drivers

Driver Status Notes
local ✅ Full Default. Files stored under drivers.local.upload_path.
s3 ✅ Full Requires aws/aws-sdk-php. Standard AWS S3 or S3-compatible endpoint.
minio ✅ Full Requires aws/aws-sdk-php. Path-style endpoint enforced. endpoint is required.
gcs 🔲 Stub Throws DriverException — implementation coming.
onedrive 🔲 Stub Throws DriverException — implementation coming.
dropbox 🔲 Stub Throws DriverException — implementation coming.

The driver used to store a file is recorded in file_meta.storage_driver. When a file is loaded from the database, the correct driver is automatically resolved for streaming and deletion — regardless of the current default_driver setting.


Image constraints

Configured in base[]. Applied automatically on every upload before the file reaches storage.

Key Effect
max_width_px Images wider than this are resized down (aspect ratio preserved)
max_height_px Images taller than this are resized down
min_width_px Images narrower than this are rejected
min_height_px Images shorter than this are rejected

Set any value to null to disable that constraint. Non-image files pass through all checks untouched.

Note: Full image manipulation (crop, rotate, watermark) is planned for timefrontiers/php-image.


Ownership

All ownership fields are VARCHAR(64) strings — not foreign keys — so they can hold user codes, system constants, or any arbitrary identifier.

Table Column Example values
file_meta owner '08744307265', 'SYSTEM', 'SYSTEM.HIDDEN'
file_default user '08744307265', 'SYSTEM'
folders owner '08744307265', 'SYSTEM'

License

MIT — see LICENSE.


All versions of php-file with dependencies

PHP Build Version
Package Version
Composer command for our command line client (download client) This client runs in each environment. You don't need a specific PHP version etc. The first 20 API calls are free. Standard composer command

The package timefrontiers/php-file contains the following files

Loading the files please wait ...