首页 > 解决方案 > 使用 easy_admin / @Vich\Uploadable 上传图像时删除生成的哈希

问题描述

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

基本上当您使用 easy_admin 上传图像时。图像得到的是一个哈希。

像这样:

/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();
   }
}

Easy_admin

    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

标签: phpsymfonyeasyadmin

解决方案


创建您自己的自定义命名器类。只需实施Vich\UploaderBundle\Naming\NamerInterface并将其添加到vich_uploader配置中。 https://github.com/dustin10/VichUploaderBundle/blob/master/docs/file_namer/howto/create_a_custom_file_namer.md


推荐阅读