Php 一个简单的图像上传
我是Symfony的新手,在我的一个表单中添加了一个简单的图片上传时,我偶然发现了一个问题Php 一个简单的图像上传,php,symfony,orm,doctrine-orm,Php,Symfony,Orm,Doctrine Orm,我是Symfony的新手,在我的一个表单中添加了一个简单的图片上传时,我偶然发现了一个问题 ## DefaultController.php ## /** * @Route("/admini/articleadd", name="articleadd") */ public function articleAdd(Request $request){ $article = new Article(); $form = $this->createFormBuilder($a
## 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()”返回为null?我建议使用,如果您想了解更多有关symfony中文件上载的信息,可以阅读相关内容
至于您的问题,表单中的image字段似乎为null/空,这可能表明您忘记添加到vich设置的表单中,但我不确定默认文件类型:class
<form enctype="multipart/form-data"></form>
我建议使用,如果您想了解更多有关symfony中文件上载的信息,可以阅读
至于您的问题,表单中的image字段似乎为null/空,这可能表明您忘记添加到vich设置的表单中,但我不确定默认文件类型:class
<form enctype="multipart/form-data"></form>