【问题标题】:Symfony2 input fileSymfony2 输入文件
【发布时间】:2017-10-23 14:04:02
【问题描述】:

我正在使用 symfony 2.5 和 Php 5.3(旧服务器)

我只想在我的表单中添加一个输入文件以显示他的路径名,例如 (C://pathto/filename)

我在我的类 Advert.php 中添加了一个属性:

  /**
 * @ORM\Column(type="string", nullable=true)
 *
 */
private $brochure = null;

public function getBrochure()
{
    return $this->brochure;
}

public function setBrochure($brochure)
{
    $this->brochure = $brochure;

    return $this;
}

在我的 AdvertType.php 中:

            ->add('brochure', 'file', array(
            'required'   => false,))

但我认为我在 addAction 中遗漏了一些东西,因为它返回了一条错误的路径,例如:(/tmp/phpYAVwMQ) 而不是 (C://filename.pdf) 当显示{{ advert.brochure }}

    public function addAction(Request $request)
{
    $advert = new Advert();
    $form = $this->createForm(new AdvertType(), $advert);
    $usr = $this->get('security.context')->getToken()->getUser();

    if ($form->handleRequest($request)->isValid()) {
        $em = $this->getDoctrine()->getManager();
        $advert->setAuthor($usr->getUsername());
        $advert->setDate(new \DateTime);
        $em->persist($advert);
        $em->flush();
        $request->getSession()->getFlashBag()->add('info', 'Annonce bien enregistrée.');

        // On redirige vers la page de visualisation de l'annonce nouvellement créée/
        return $this->redirect($this->generateUrl('info_view', array('id' => $advert->getId())));
    }

    return $this->render('SocietyPerfclientBundle:Default:add.html.twig', array(
        'form' => $form->createView(),
    ));
}

请帮帮我:)

【问题讨论】:

    标签: symfony input path filenames


    【解决方案1】:

    出于安全原因,您无法获取本地计算机的完整路径(“C:\pathto”),只能获取文件名
    在您的 $advert->setDate 行之后添加此行:

    $advert->setBrochure($form->get('brochure')->getData()->getClientOriginalName());
    

    【讨论】:

    • 非常感谢@Luax,你是最棒的!
    【解决方案2】:

    Symfony 'file' 输入类型用于文件上传。如果文件已放置在您的网络服务器上的位置,它为您提供的路径,目前。

    Documentation 关于使用未维护的 Symfony v2.5 可用,并提供有关上传文件的可用信息的示例,包括原始文件名。

    将项目至少更新到长期支持版本 2.7 应该在要做的事情列表的早期,然后通过 2.8 和 3.0 更新到 3.3+。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-08-27
      • 1970-01-01
      • 1970-01-01
      • 2015-06-08
      • 1970-01-01
      • 2014-10-18
      • 2020-09-16
      相关资源
      最近更新 更多