Php 使用easy_admin/@Vich\Uploadable上载图像时删除生成的哈希

Php 使用easy_admin/@Vich\Uploadable上载图像时删除生成的哈希,php,symfony,easyadmin,Php,Symfony,Easyadmin,我的问题很简单,但同时也很复杂 基本上,当你上传一个图像与易_管理。图像是一个散列 像这样: /uploads/images/5f17449f4932f_image004.jpg 是否有任何方法可以删除图像名称之前生成的哈希 这是我的实体: use Symfony\Component\HttpFoundation\File\File; use Vich\UploaderBundle\Mapping\Annotation as Vich; /** * Image * * @ORM\Co

我的问题很简单,但同时也很复杂

基本上,当你上传一个图像与易_管理。图像是一个散列

像这样:

/uploads/images/5f17449f4932f_image004.jpg
是否有任何方法可以删除图像名称之前生成的哈希

这是我的实体:

use Symfony\Component\HttpFoundation\File\File;
use Vich\UploaderBundle\Mapping\Annotation as Vich;

 /**
 * Image
 *
 * @ORM\Column(type="string", length=255)
 * @var string
 */
private $image = '';

/**
 * ImageFile
 *
 * @Vich\UploadableField(mapping="images", fileNameProperty="image")
 * @var File
 */
private $imageFile;
在easy_admin.yml配置中是否有可以使用的设置

 form:
    fields:
      - { property: 'imageFile', label: 'Image', type: 'vich_image'}
如果需要任何其他信息,请告诉我。 多谢各位

更新:课堂


namespace App\Service\FileNamer;

use Symfony\Component\HttpFoundation\File\UploadedFile;
use Vich\UploaderBundle\Mapping\PropertyMapping;
use Vich\UploaderBundle\Naming\NamerInterface;

class FileNamer implements NamerInterface
{
   public function name($object, PropertyMapping $mapping): string
   {
       /* @var $file UploadedFile */
       $file = $mapping->getFile($object);

       return  $file->getClientOriginalName();
   }
}
轻松管理

    db_driver: orm
    mappings:
        images:
            uri_prefix:         '%upload_images_folder%'
            upload_destination: '%kernel.root_dir%/../public%upload_images_folder%'
            namer:
                service: App\Service\FileNamer
        videos:
            uri_prefix:         '%upload_videos_folder%'
            upload_destination: '%kernel.root_dir%/../public%upload_videos_folder%'
            namer:
                service: vich_uploader.namer_origname
        pdfs:
            uri_prefix:         '%upload_pdfs_folder%'
            upload_destination: '%kernel.root_dir%/../public%upload_pdfs_folder%'
            namer:
                service: vich_uploader.namer_origname

创建自己的自定义名称类。只需实现
Vich\UploaderBundle\Naming\NamerInterface
并将其添加到
Vich\u uploader
配置中。
创建您自己的自定义命名器类。只需实现
Vich\UploaderBundle\Naming\NamerInterface
并将其添加到
Vich\u uploader
配置中。

将哈希添加到文件名中的原因是为了防止上载同名文件时发生冲突,我想您应该理解这一点。所以问题是:你想要实现什么?你想删除散列的原因是什么?这只会让我的生活更轻松。您是否有任何TIPP?将哈希添加到文件名的原因是为了防止上载同名文件时发生冲突,我想您理解这一点。所以问题是:你想要实现什么?你想删除散列的原因是什么?这只会让我的生活更轻松。你有什么提示吗?嘿,当我尝试你的方法时,我在尝试调试时得到以下信息:容器
服务“App\Service\FileNamer.images”:父定义“App\Service\FileNamer”不存在。
。下面是我如何添加它的
namer:service:App\service\FileNamer
您是否创建了类
App\Naming\MyNamer
?它被称为
名称空间App\service\FileNamerApp\Service\FileNamer
,它正在实现
Vich\UploaderBundle\Naming\NamerInterface
,对吗?嘿,我把它添加到了帖子中。所以你可以看到它。应该把事情弄清楚:当我尝试你的方法时,我会在尝试调试时得到以下信息:容器
服务“App\Service\FileNamer.images”:父定义“App\Service\FileNamer”不存在。
。下面是我如何添加它的
namer:service:App\service\FileNamer
您是否创建了类
App\Naming\MyNamer
?它被称为
名称空间App\service\FileNamerApp\Service\FileNamer
,它正在实现
Vich\UploaderBundle\Naming\NamerInterface
,对吗?嘿,我把它添加到了帖子中。所以你可以看到它。应该把事情弄清楚:D