php - 使用 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
解决方案
创建您自己的自定义命名器类。只需实施Vich\UploaderBundle\Naming\NamerInterface
并将其添加到vich_uploader
配置中。
https://github.com/dustin10/VichUploaderBundle/blob/master/docs/file_namer/howto/create_a_custom_file_namer.md
推荐阅读
- reactjs - 使用钩子多次渲染反应功能组件
- php - 方法 App\Http\Controllers\Elibrary::save 不存在
- stripe-payments - 允许不同的客户为 Stripe 订阅付费
- python - 如何打印实际数据而不是对象的内存位置?
- c# - 在 VS2019 .NET 4.8 中为 C# 项目构建安装程序失败
- javascript - 如何使用javascript从数组中删除键并仅将数据存储在数组中?
- prolog - SWI-prolog 语义推理
- java - 如何将此代码从 switch case 更改为 if else?
- html - 在这两个标签的末尾添加冒号
- python - python:根据出现频率分组