Symfony2 输入文件
Symfony2 input file
我正在使用 symfony 2.5 & Php 5.3(旧服务器)
我只想在我的表单中添加一个输入文件来显示他的路径名,如 (C://pathto/filename)
我已经在我的 class 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 中遗漏了一些东西,因为它 returns 我是一条糟糕的道路,例如:(/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 'file' 输入类型用于文件上传。如果文件已放置在您的网络服务器上的位置,它为您提供的路径,目前。
Documentation 提供了关于使用未维护的 Symfony v2.5 的信息,并提供了有关上传文件的可用信息(包括原始文件名)的示例。
将项目至少更新到长期支持版本 2.7 应该在要做的事情列表的早期,然后通过 2.8 和 3.0 更新到 3.3+。
出于安全原因,您无法获取本地计算机 ("C:\pathto") 的完整路径,只能获取文件名
在 $advert->setDate
行之后添加此行:
$advert->setBrochure($form->get('brochure')->getData()->getClientOriginalName());
我正在使用 symfony 2.5 & Php 5.3(旧服务器)
我只想在我的表单中添加一个输入文件来显示他的路径名,如 (C://pathto/filename)
我已经在我的 class 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 中遗漏了一些东西,因为它 returns 我是一条糟糕的道路,例如:(/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 'file' 输入类型用于文件上传。如果文件已放置在您的网络服务器上的位置,它为您提供的路径,目前。
Documentation 提供了关于使用未维护的 Symfony v2.5 的信息,并提供了有关上传文件的可用信息(包括原始文件名)的示例。
将项目至少更新到长期支持版本 2.7 应该在要做的事情列表的早期,然后通过 2.8 和 3.0 更新到 3.3+。
出于安全原因,您无法获取本地计算机 ("C:\pathto") 的完整路径,只能获取文件名
在 $advert->setDate
行之后添加此行:
$advert->setBrochure($form->get('brochure')->getData()->getClientOriginalName());