Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/243.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 在Symfony中上载PDF文件_Php_Symfony - Fatal编程技术网

Php 在Symfony中上载PDF文件

Php 在Symfony中上载PDF文件,php,symfony,Php,Symfony,我试图上传一个symfony格式的文件,但我得到了这个错误:注意:未定义索引:file,这意味着它没有恢复文件 我的表格: <?php namespace Polytech\SkillsBundle\Form\Rapport; use Symfony\Component\Form\AbstractType; use Symfony\Component\Form\Extension\Core\Type\ButtonType; use Symfony\Component\Form\Extens

我试图上传一个symfony格式的文件,但我得到了这个错误:注意:未定义索引:file,这意味着它没有恢复文件

我的表格:

<?php
namespace Polytech\SkillsBundle\Form\Rapport;
use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\Extension\Core\Type\ButtonType;
use Symfony\Component\Form\Extension\Core\Type\FileType;
use Symfony\Component\Form\Extension\Core\Type\HiddenType;
use Symfony\Component\Form\FormBuilderInterface;
use Symfony\Bridge\Doctrine\Form\Type\EntityType;

class FicheOccasionType extends AbstractType
{
    /**
     * @param FormBuilderInterface $builder
     * @param array $options
     */
    public function buildForm(FormBuilderInterface $builder, array $options)
    {
        $builder
            ->add('ues', EntityType::class,
                array(
                    'class' => 'Polytech\SkillsBundle\Entity\UE',
                    'attr' => array('class' => 'browser-default ue'),
                    'choice_label' => 'nom',
                    'label' => false,
                    'required' => false,
                    'placeholder' => 'Choisissez une UE'
                )
            )
            ->add('etudiants', EntityType::class,
                array(
                    'class' => 'Polytech\SkillsBundle\Entity\Utilisateur',
                    'attr' => array('class' => 'browser-default etudiants'),
                    'choice_label' => 'nom',
                    'label' => false,
                    'required' => false,
                    'placeholder' => 'Choisissez un utilisateur'
                )
            )
            ->add('file', FileType::class, array('label' => 'PDF File'))
            ->add('submit', HiddenType::class)
            ->add('export', ButtonType::class, array('label' => 'Exporter'))
            ->add('import', ButtonType::class, array('label' => 'Import'));

    }

    public function getName()
    {
        return 'fiche_occasion';
    }
}

如何检索文件信息以将其存储在web中并将其路径存储在数据库中

文件不存储在post或get VAR中。文件存储在$request->Files中

symfony.com/doc/current/components/http_foundation.html#访问请求数据


尝试使用$file=$request->files['file'];相反。

请尝试遵循以下链接:

其中包含使用上载文件创建表单的良好实践(也是安全性)

在您的情况下,尝试使用
$fichemeetion
(您的对象…):

和Symfony在控制器中的这一行之后执行此工作:

$form->handleRequest($request);
及之后:

if($form->isSubmitted() && $form->isValid() ) {
....
您可以通过以下方式访问文件内容:

$file = $ficheOccasion->getFile();
所以你可以这样做:

$file->guessExtension();
$file->move( .... )
在将对象持久化到数据库之前的最后:

$ficheOccasion->setFile($fileName); // your prepared filename...

错误发生在哪里?我在单击“导入”或“导出”按钮时出错,但这不是问题所在,因为我可以在这两种情况下获取所有信息,我可以获取$etudiants信息和$use,但不能获取此行中的文件$file=$data['file'];在生成的表单中,检查是否将其设置为“POST”而不是“GET”,并确保表单具有
enctype=“multipart/form data”
property。因此,请尝试像这样获取文件$form->GET('file')。我确实需要这种工作方式,但我有一个问题要从symfony开始。教学单位是一个实体,研究它是另一个实体。。。评估表也是另一个实体。每个学生都有几个文件,每个文件只针对一个学生。所以$fiche=新fiche();//您的实体类(?)$form=$this->createForm(Fiche::Class,$Fiche);仅使用文件创建Fiche实体??我在这里发布了问题的详细信息。我试图使用FichePDF(我的实体)更改FichepEdf,但我得到了以下错误:属性“ues”或方法“getUes()”、“ues()”、“isUes()”、“hasUes()”、“\uu get()”都不存在,并且在类“Polytech\SkillsBundle\entity\FichePDF”中具有公共访问权限.但我不明白为什么类型不是UploadedFile?
$file->guessExtension();
$file->move( .... )
$ficheOccasion->setFile($fileName); // your prepared filename...