Open mysterty opened 1 year ago
Note : this can be accomplished with custom directory namer, and it can also be more friendly used in addition with liip imagine :
vich_uploader:
db_driver: orm
storage: flysystem
mappings:
media:
uri_prefix: "/uploads/.."
upload_destination: oneup_flysystem.default_filesystem_filesystem ## oneup FlySystem
namer: Vich\UploaderBundle\Naming\SmartUniqueNamer
directory_namer:
service: vich_uploader.namer_directory_property
options: { property: "directory", transliterate: false }
// Entity\Media.php
class Media
{
private ?string $basePath = '/uploads/medias/';
private ?string $directory = null;
[...]
// ##################### Custom methods #####################
public function getDirectory(): ?string
{
$date = $this->createdAt?$this->createdAt:date('Y-m-d H:i:s');
return $this->basePath.$date->format("Y").'/'.$date->format("m").'/';
}
public function getUrl(): ?string
{
return sprintf('%s/%s', $this->getDirectory(), $this->filename);
}
[...]
}
Yet, it could be for some uses...
Feature Request
Summary
Actually, using storage like flysystem, you need to make one storage configuration by mapping (+ one "default" for imagine if you use it) :
I propose to directly use
uri_prefix
as directory destination or add an optionaldirectory_destination
like :