Plank\Mediable\Media::class, /* * Filesystem disk to use if none is specified */ 'default_disk' => 'uploads', /* * Filesystems that can be used for media storage * * Uploader will throw an exception if a disk not in this list is selected */ 'allowed_disks' => [ 'uploads', ], /* * The maximum file size in bytes for a single uploaded file */ 'max_size' => 1024 * 1024 * 10, /* * What to do if a duplicate file is uploaded. * * Options include: * * * `'increment'`: the new file's name is given an incrementing suffix * * `'replace'` : the old file and media model is deleted * * `'error'`: an Exception is thrown */ 'on_duplicate' => Plank\Mediable\MediaUploader::ON_DUPLICATE_INCREMENT, /* * Reject files unless both their mime and extension are recognized and both match a single aggregate type */ 'strict_type_checking' => false, /* * Reject files whose mime type or extension is not recognized * if true, files will be given a type of `'other'` */ 'allow_unrecognized_types' => false, /* * Only allow files with specific MIME type(s) to be uploaded */ 'allowed_mime_types' => [], /* * Only allow files with specific file extension(s) to be uploaded */ 'allowed_extensions' => [], /* * Only allow files matching specific aggregate type(s) to be uploaded */ 'allowed_aggregate_types' => [], /* * List of aggregate types recognized by the application * * Each type should list the MIME types and extensions * that should be recognized for the type */ 'aggregate_types' => [ Plank\Mediable\Media::TYPE_IMAGE => [ 'mime_types' => [ 'image/jpeg', 'image/png', 'image/gif', ], 'extensions' => [ 'jpg', 'jpeg', 'png', 'gif', ] ], Plank\Mediable\Media::TYPE_IMAGE_VECTOR => [ 'mime_types' => [ 'image/svg+xml', ], 'extensions' => [ 'svg', ] ], Plank\Mediable\Media::TYPE_PDF => [ 'mime_types' => [ 'application/pdf', ], 'extensions' => [ 'pdf', ] ], Plank\Mediable\Media::TYPE_AUDIO => [ 'mime_types' => [ 'audio/aac', 'audio/ogg', 'audio/mpeg', 'audio/mp3', 'audio/mpeg', 'audio/wav' ], 'extensions' => [ 'aac', 'ogg', 'oga', 'mp3', 'wav', ] ], Plank\Mediable\Media::TYPE_VIDEO => [ 'mime_types' => [ 'video/mp4', 'video/mpeg', 'video/ogg', 'video/webm' ], 'extensions' => [ 'mp4', 'm4v', 'mov', 'ogv', 'webm' ] ], Plank\Mediable\Media::TYPE_ARCHIVE => [ 'mime_types' => [ 'application/zip', 'application/x-compressed-zip', 'multipart/x-zip', ], 'extensions' => [ 'zip', ] ], Plank\Mediable\Media::TYPE_DOCUMENT => [ 'mime_types' => [ 'text/plain', 'application/plain', 'text/xml', 'text/json', 'application/json', 'application/msword', 'application/application/vnd.openxmlformats-officedocument.wordprocessingml.document' ], 'extensions' => [ 'doc', 'docx', 'txt', 'text', 'xml', 'json', ] ], Plank\Mediable\Media::TYPE_SPREADSHEET => [ 'mime_types' => [ 'application/vnd.ms-excel', 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet', ], 'extensions' => [ 'xls', 'xlsx', ] ], Plank\Mediable\Media::TYPE_PRESENTATION => [ 'mime_types' => [ 'application/vnd.ms-powerpoint', 'application/vnd.openxmlformats-officedocument.presentationml.presentation', 'application/vnd.openxmlformats-officedocument.presentationml.slideshow' ], 'extensions' => [ 'ppt', 'pptx', 'ppsx', ] ], ], /* * List of adapters to use for various source inputs * * Adapters can map either to a class or a pattern (regex) */ 'source_adapters' => [ 'class' => [ Symfony\Component\HttpFoundation\File\UploadedFile::class => Plank\Mediable\SourceAdapters\UploadedFileAdapter::class, Symfony\Component\HttpFoundation\File\File::class => Plank\Mediable\SourceAdapters\FileAdapter::class, Psr\Http\Message\StreamInterface::class => Plank\Mediable\SourceAdapters\StreamAdapter::class, ], 'pattern' => [ '^https?://' => Plank\Mediable\SourceAdapters\RemoteUrlAdapter::class, '^/' => Plank\Mediable\SourceAdapters\LocalPathAdapter::class, '^[a-zA-Z]:\\' => Plank\Mediable\SourceAdapters\LocalPathAdapter::class ], ], /* * List of URL Generators to use for handling various filesystem drivers * */ 'url_generators' => [ 'local' => Plank\Mediable\UrlGenerators\LocalUrlGenerator::class, 's3' => Plank\Mediable\UrlGenerators\S3UrlGenerator::class, ], /** * Should mediable instances automatically reload their media relationships after modification are made to a tag. * * If true, will automatically reload media the next time `getMedia()`, `getMediaMatchAll()` or `getAllMediaByTag()` are called. */ 'rehydrate_media' => true, /** * Detach associated media when mediable model is soft deleted. */ 'detach_on_soft_delete' => true, ];