首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >EasyAdmin图像路径

EasyAdmin图像路径
EN

Stack Overflow用户
提问于 2020-03-30 19:35:21
回答 1查看 3.7K关注 0票数 1

我不知道如何显示通过EasyAdmin上传的图像。当它上传图像时,它会在服务器上显示一个绝对路径,并将整个文件与文件名一起存储到数据库中,因此它不能用于html <img>标记。

如何存储图像的相对路径?或者我需要在树枝上应用一些过滤器来显示它?

我有一个带有字段的EasyAdmin表单:

代码语言:javascript
复制
- { property: 'imageFile', type: 'file_upload', type_options: { upload_dir: '/public/data/gallery/images/', upload_filename: '[uuid]-[timestamp].[extension]'}}

我使用的是,一个内置的EasyAdmin文件上传器,而不是一个单独的捆绑或服务https://symfony.com/doc/current/bundles/EasyAdminBundle/book/edit-new-configuration.html#file-upload

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-04-12 13:52:39

可以使用虚拟字段属性修复此问题,在保存/检索真实字段之前对数据进行操作。

这是我在easy_admin.yaml中的字段定义

代码语言:javascript
复制
 - { property: 'virtualFilename', type: 'file_upload', type_options: {upload_dir: 'public/imageswerk',upload_filename: '[uuid].[extension]' }}

这就是我的setters/getter在实体中的样子:

代码语言:javascript
复制
    /**
     * @var string
     *
     * @ORM\Column(name="filename", type="string", length=80, nullable=false)
     */
    private $filename;

    /**
     * @return string|null
     */
    public function getFilename()
    {
        return $this->filename;
    }

    /**
     * @param string $filename
     */
    public function setFilename(string $filename)
    {
        $this->filename = $filename;
    }

    public function getVirtualFilename()
    {
        //Set path for easyadmin
        return realpath(__DIR__.'/../../public/imageswerk/'.$this->filename);
    }

    public function setVirtualFilename($filename)
    {
        //Only keep last part of filepath
        $this->setFilename(basename($filename));
    }

我在getVirtualFilename中设置了一个手动路径,但理想情况下,您应该注入类似%project_dir%之类的东西,或者防止像这样的硬编码路径。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60938190

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档