无法使用SF2将上传的文件保存到文件系统

时间:2014-07-17 17:00:07

标签: php image forms symfony filesystems

我正在尝试处理通过表单上传的文件并将其保存到我的文件系统中。但是,当我这样做时,我始终会从Symfony/Component/HttpFoundation/File/File.php

这些行中收到错误

Unable to create the "/images/gallery" directory 500 Internal Server Error - FileException

在我的控制器中,我有这个代码,它处理表单验证,实体持久性等。

$gallery_image = new GalleryImage();
$form          = $this->createForm(new GalleryImageType(), $gallery_image);

// Bind the posted data to the form
$form->bind($this->getRequest());
// Make sure the form is valid before we persist the image
if ($form->isValid()) {
   // Get the entity manager and persist the contact
   $em = $this->getDoctrine()->getManager();

   $gallery_image->upload();

   $em->persist($gallery_image);
   $em->flush();

   // etc...         
}

upload方法中,我这样做:

$this->image->move('/images/gallery', 'test.'.$this->image->guessExtension());

所以我的目的是将其移至/web/images/gallery

我尝试将/web更改为777,因此问题似乎不是权限问题。

/web/images/gallery是否放置这些图片的正确位置,是否有任何理由我无法将此文件保存到文件系统?

1 个答案:

答案 0 :(得分:3)

根据您的代码,您的意思是驱动器的根目录。因此,您的网络文件夹的路径不正确。

尝试更类似的东西:

$this->image->move(__DIR__ . '/../../../../web/images/gallery', 'test.'.$this->image->guessExtension());

如果您在网络目录中创建了图像和图库文件夹,它应该可以使用。

参考:http://symfony.com/doc/current/cookbook/doctrine/file_uploads.html