Php 如何在Symfony 2中检查上载的文件是否为pdf
我正在验证我的一个表单,我需要检查上传的文件是否是pdf。我尝试在表单中使用文件约束,但它仍然让我传递一些不是pdf的内容(例如a.txt) 我是做错了还是应该用其他方法来做 我的表格:Php 如何在Symfony 2中检查上载的文件是否为pdf,php,forms,symfony,pdf,Php,Forms,Symfony,Pdf,我正在验证我的一个表单,我需要检查上传的文件是否是pdf。我尝试在表单中使用文件约束,但它仍然让我传递一些不是pdf的内容(例如a.txt) 我是做错了还是应该用其他方法来做 我的表格: <?php namespace AdminBundle\Form; use Symfony\Component\Form\AbstractType; use Symfony\Component\Form\FormBuilderInterface; use Symfony\Component\Valid
<?php
namespace AdminBundle\Form;
use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\FormBuilderInterface;
use Symfony\Component\Validator\Constraints\File;
Class FormUpdateCV extends AbstractType
{
public function buildForm(FormBuilderInterface $constructeur, array $options)
{
$format_fichier=new File(array(
'mimeTypes'=>'application/pdf',
'mimeTypesMessage'=>'Le fichier doit être un pdf'
));
$constructeur
->add('CV','file',array('label'=>'C.V.:', 'constraints'=>array($format_fichier)))
->add('mettreAJour','submit',array('label'=>'Mettre à jour'));
}
public function getName()
{
return 'update_CV';
}
}
您可以直接在实体中添加约束。你觉得这个怎么样
在尝试了一些东西之后,我以前的状况似乎起了作用。例如,如果我有一个.pdf文件,并选择将扩展名更改为.txt,它仍然会将其识别为.pdf,但它仍然会更改控制器中的扩展名,所以这没问题。另一方面,如果我将.txt更改为.pdf,它仍然会将该文件识别为.txt,这很好,因为该文件无论如何都会读取wright。它看起来非常有趣,但我没有bio文件的实体,我只是上传了它,所以需要在表单验证中完成。尝试了一些东西后,似乎我以前的条件确实有效。例如,如果我有一个.pdf文件,并选择将扩展名改为.txt,它仍然会将其识别为.pdf,但它仍然会在我的控制器中更改扩展名,所以这没问题。另一方面,如果我将.txt改为.pdf,它仍然会将该文件识别为.txt,这很好,因为该文件无论如何都会读取wright。但我还有一个问题,什么是x-pdf格式?
// src/Acme/BlogBundle/Entity/Author.php
namespace Acme\BlogBundle\Entity;
use Symfony\Component\Validator\Constraints as Assert;
class Author
{
/**
* @Assert\File(
* maxSize = "1024k",
* mimeTypes = {"application/pdf", "application/x-pdf"},
* mimeTypesMessage = "Please upload a valid PDF"
* )
*/
protected $bioFile;
}