Skip to content

Abstract file storage and upload plugin for CakePHP. Write to local disk, FTP, S3, Dropbox and more through a single interface. It's not just an uploader but a complete solution.

License

tiagocapelli/cakephp-file-storage

 
 

Repository files navigation

FileStorage Plugin for CakePHP

Software License Build Status Coverage Status Code Quality

If you're upgrading from CakePHP 2.x please read the migration guide.

The File Storage plugin is giving you the possibility to upload and store files in virtually any kind of storage backend. This plugin is wrapping the Gaufrette library in a CakePHP fashion and provides a simple way to use the storage adapters through the StorageManager class.

Storage adapters are an unified interface that allow you to store file data to your local file system, in memory, in a database or into a zip file and remote systems. There is a database table keeping track of what you stored where. You can always write your own adapter or extend and overload existing ones.

Already thought of how many hours development time this plugin saved you already? It would be awesome if you don't mind sharing some of your success by donating a small amount! Thank you.

How it works

The whole plugin is build with clear Separation of Concerns in mind: A file is always an entry in the file_storage table from the app perspective. The table is the reference to the real place of where the file is stored and keeps some meta information like mime type, filename, file hash (optional) and size as well. You associate the file_storage table with your model using the FileStorage or ImageStorage model from the plugin via hasOne, hasMany or HABTM. When you upload a file you save it to the FileStorage model through the associations, Documents.file for example. The FileStorage model dispatches then file storage specific events, the listeners listening to these events process the file and put it in the configured storage backend using adapters for different backends and build the storage path using a path builder class.

List of supported Adapters

  • Apc
  • Amazon S3
  • ACL Aware Amazon S3
  • Azure
  • Doctrine DBAL
  • Dropbox
  • Ftp
  • Grid FS
  • In Memory
  • Local File System
  • MogileFS
  • Open Cloud
  • Rackspace Cloudfiles
  • Sftp
  • Zip File

Requirements

  • PHP 5.4+
  • CakePHP 3.0
  • Gaufrette Library (included as composer dependency)

Optional but required for image processing:

Documentation

For documentation, as well as tutorials, see the docs directory of this repository.

Support

For bugs and feature requests, please use the issues section of this repository.

Contributing

To contribute to this plugin please follow a few basic rules.

License

Copyright 2012 - 2016, Florian Krämer

Licensed under The MIT License Redistributions of files must retain the above copyright notice.

About

Abstract file storage and upload plugin for CakePHP. Write to local disk, FTP, S3, Dropbox and more through a single interface. It's not just an uploader but a complete solution.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • PHP 100.0%