0
我剛開始學習Symfony 3並且我做了一個博客。 我使用Doctrine Entities與數據庫進行交互。我在Mac OS上使用Xampp。Symfony 3不能移動上傳的文件
我創建了一個帶有文件輸入的表單,但是當我想上傳文件時,它永遠不會移動到它應該在的位置,並且在數據庫中記錄Xampp的臨時文件夾的路徑。
這裏的代碼在實體文件中的一部分:
public function getFile()
{
return $this->file;
}
public function setFile(UploadedFile $file = null)
{
$this->file = $file;
}
public function upload(){
if(null === $this->file){
return;
}
$name = $this->file->getClientOriginalName();
$this->file->move($this->getUploadRootDir(), $name);
$this->image = $name;
}
public function getUploadDir(){
return 'uploads/img';
}
public function getUploadRootDir(){
return '/../../../../web/'.$this->getUploadDir();
}
這是我的表單生成器:
class BlogType extends AbstractType
{
/**
* @param FormBuilderInterface $builder
* @param array $options
*/
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder
->add('image', FileType::class)
->add('categorie', TextType::class)
->add('photographe', TextType::class)
->add('save', SubmitType::class)
;
}
/**
* @param OptionsResolver $resolver
*/
public function configureOptions(OptionsResolver $resolver)
{
$resolver->setDefaults(array(
'data_class' => 'Boreales\PlatformBundle\Entity\Blog'
));
}
}
而從控制器的addAction:
public function addAction(Request $request)
{
//Création de l'entité
$photo = new Blog();
$form = $this->get('form.factory')->create(BlogType::class, $photo);
if($request->isMethod('POST') && $form->handleRequest($request)->isValid()){
$photo->upload();
$em = $this->getDoctrine()->getManager();
$em->persist($photo);
$em->flush();
$request->getSession()->getFlashBag()->add('notice', 'Photo enregistrée.');
var_dump($photo->getImage());
//return new Response('Coucou');
//return $this->redirectToRoute('galerie');
}
return $this->render('BorealesPlatformBundle:Blog:add.html.twig', array(
'form' => $form->createView()
));
}
有人可以看到問題在哪裏嗎?