1

我的问题

我很想stof/StofDoctrineExtensionsBundlesymfony3. 因此,$form->bind我尝试使用 stof 文档中的示例而不是使用$form->handleRequest. 提交表单后不幸的是,我收到以下错误:

文件“”不存在

我会很感激你告诉我我做错了什么。也许有人会这么好心并为我提供工作上传脚本的示例?


我的代码


我的控制器代码如下所示:

 public function plikAction(Request $request, $dok_id, $plik_id)
    { 
        $em = $this->getDoctrine()->getManager();
        if($plik_id == "nowy") $plik = new plik();
        /.../
        $form = $this->createForm(plikType::class, $plik);

        $form->handleRequest($request);
        if ($form->isSubmitted() && $form->isValid()) 
        {
            if($plik_id == "nowy")
            {
                $em->persist($plik);
                $uploadableManager = $this->get('stof_doctrine_extensions.uploadable.manager');
                $uploadableManager->markEntityToUpload($plik, $plik->getName());
                $em->flush();
                $this->get('session')->getFlashBag()->add('success','Dodano plik ');
            }
            /.../
    }

使用以下函数构建表单:

public function buildForm(FormBuilderInterface $builder, array $options)
    {
        $builder
            ->add('oznaczenie')
            ->add('name', FileType::class)
            ->add('wgraj', SubmitType::class);
    }

和我的实体类:

/**
 * @ORM\Entity
 * @ORM\Table
  * @Gedmo\Uploadable
 */
class plik
{

    /**
     * @ORM\Column
     * @Gedmo\UploadableFileName
     */
    private $name;

    /*
     * @ORM\Column(type="string", length=100)
     * @Gedmo\UploadableFilePath
     */
     protected $path;

我正在使用此处列出的默认配置https://symfony.com/doc/master/bundles/StofDoctrineExtensionsBundle/index.html

4

2 回答 2

1

默认情况下, 的default_file_path值为%kernel.root_dir%/../web/uploads

要使其使用默认配置,请在应用程序的目录中
创建uploads文件夹:web

mkdir web/uploads    

并通过根据您的 Web 服务器用户设置正确的权限使其可写。

假设www-data是 Web 服务器用户,请使用以下内容:

chown -R www-data:www-data web/uploads

或使用以下方法更改目录权限chmod(风险自负):

chmod -R 755 web/uploads

(如果此命令需要以 root 身份执行,请在它们前面加上sudo

希望这能解决您的问题。

于 2016-02-19T14:13:54.607 回答
0

在我的情况下,Symfony3 错误:

文件“”不存在

由于限制,PHP 无法将文件写入临时文件夹open_basedir

因此,在任何情况下,您在 Symfony3 中都会看到此错误,请确保为文件夹设置了正确的权限,并且 PHP 可以将数据写入其中。

于 2016-02-19T13:05:31.560 回答