【问题标题】:A simple image upload一个简单的图片上传
【发布时间】:2016-12-18 00:53:00
【问题描述】:

我是 Symfony 的新手,偶然发现了一个向我的一个表单添加简单图片上传的问题。

 ## DefaultController.php ##
 /**
 *   @Route("/admini/articleadd", name="articleadd")
 */
 public function articleAdd(Request $request){
 $article = new Article();
 $form = $this->createFormBuilder($article)
    ->add('title', TextType::class, array('attr' => array('maxlenght' => 14)))
    ->add('text', TextareaType::class)
    ->add('image', FileType::class)
    ->add('add', SubmitType::class, array('label' => 'Create Article'))
    ->getForm();
 $form->handleRequest($request);
 if ($form->isSubmitted() && $form->isValid()) {
        $article = $form->getData();
        /** @var Symfony\Component\HttpFoundation\File\UploadedFile $file */
 $file = $article->getImage();
 $fileName = md5(uniqid());
 $file->move(
            $this->getParameter('image_directory'),
            $fileName
        );
 $article->setImage($fileName);
 $em = $this->getDoctrine()->getManager();
 $em->persist($article);
 $em->flush();
 return $this->redirectToRoute('login');
}
return $this->render('default/articleadd.html.twig', array(
        'form' => $form->createView(),
        ));
}

 #Article.php

 use Doctrine\ORM\Mapping as ORM;
 use Symfony\Component\Validator\Constraints as Assert;

 /**
 * @ORM\Entity
 * @ORM\Table(name="Article")
 */
 class Article
 {   //...// 
     /**
     * @ORM\Column(type="string")
     * @Assert\File(mimeTypes={ "image/jpeg" })
     */
    private $image;
    //...//
 }

所以每当我尝试提交表单时,我都会收到消息:

致命错误:在 null 上调用成员函数 move()

那么显然 "$file = $article->getImage()" 返回为空?

【问题讨论】:

    标签: php symfony orm doctrine-orm


    【解决方案1】:

    我推荐使用VichUploaderBundle,如果你想了解更多关于 symfony 文件上传的知识,你可以阅读它here.

    至于您的问题,表单中的图像字段似乎为空/空,这可能表明您忘记添加到设置它的表单,但我不确定默认 FileType:class。

    <form enctype="multipart/form-data"></form>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-11-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多