1

我创建了一个文件上传页面。在我的控制器中,我想获取视图的上传路径并将其添加到数据库中以获得特定的 ID。为此,我想要文件的路径并将其发送到存储库。我在控制器中使用时的问题

if ($request->getMethod() == 'POST')

      { 
                $form->bind($request);

        $file = $form["file"]->getData();

                /* here it is giving the path like /tmp/phpkR4kgD */
                $em = $this->getDoctrine()->getManager();
                $user->upload();
            }
this is my entity

/**
     * Sets file.
     *
     * @param UploadedFile $file

     */

    public function setFile(UploadedFile $file = null)
    {
        $this->file = $file;
    }
    public function upload()
    {
    if (null === $this->file) 
    {
            return;
        }
    $this->file->move($this->getUploadRootDir(), $this->file->getClientOriginalName());
    $this->path = $this->file->getClientOriginalName();
    $this->file = null;
    }
    /**
     * Get file.
     *
     * @return UploadedFile
     */
    public function getFile()
    {
        return $this->file;
    }

    public function getAbsolutePath()
    {
        return null === $this->path
            ? null
            : $this->getUploadRootDir() . DIRECTORY_SEPARATOR . $this->path;
    }

    public function getWebPath()
    {
        return null === $this->path
            ? null
            : $this->getUploadDir() . DIRECTORY_SEPARATOR . $this->path;
    }

    protected function getUploadRootDir()
    {
        return __DIR__ . '/../../../../web/'. $this->getUploadDir();
    }

    protected function getUploadDir()
    {
        return 'uploads/';
    }

我在 symfony 的 web 文件夹中创建了我的上传文件夹

4

1 回答 1

1

从它调用upload() 方法时,会获取到实体的临时路径。

在实体中,它将获得原始路径 $this->path = $this->file->getClientOriginalName();

所以使用 return 语句从那里返回到控制器的原始路径,你可以将它保存在数据库中......

于 2013-05-24T05:54:40.757 回答