gpt4 book ai didi

Symfony 表单 mime 类型应该只接受 PDF 文件

转载 作者:行者123 更新时间:2023-12-05 04:17:16 24 4
gpt4 key购买 nike

我试图让我的 Symfony2 程序只接受 PDF 文件。在我的实体类中:

/**
* File
*
* @var File
*
* @Assert\File(
* maxSize = "5M",
* mimeTypes = {"application/pdf", "application/x-pdf"},
* maxSizeMessage = "The maxmimum allowed file size is 5M.",
* mimeTypesMessage = "Please upload a valid PDF"
* )
*/
protected $file;

问题是为什么我仍然可以上传其他文件。我目前正在通过 REST API 上传。

代码:

    public function postFileAction(Request $request){

$name = $request->get('name');
$path = $request->get('path');
$file = $request->files->get('file');

$filesTest = new FilesTest();
$filesTest->setName($name);
$filesTest->setFile($file);;

$manager = $this->getDoctrine()->getManager();
$manager->persist($filesTest);
$manager->flush();
}

我是 symfony2 的新手,所以我可能误解了如何处理这个问题。有没有人有什么建议?

最佳答案

您实际上并没有验证这些验证规则。

试试这个:

public function postFileAction(Request $request)
{
$name = $request->get('name');
$path = $request->get('path');
$file = $request->files->get('file');

$filesTest = new FilesTest();
$filesTest->setName($name);
$filesTest->setFile($file);

$validator = $this->get('validator'); // Assuming ContainerAware
$errors = $validator->validate($filesTest);

if (count($errors) > 0) {
// Handle your errors here
} else {
$manager = $this->getDoctrine()->getManager();
$manager->persist($filesTest);
$manager->flush();
}

// Return your response etc...
}

如果您想了解有关这种验证方式的更多信息,请查看此处:http://symfony.com/doc/current/book/validation.html

在使用 REST 的同时,您还可以欺骗表单提交,因此,不要排除也使用表单。

关于Symfony 表单 mime 类型应该只接受 PDF 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24084384/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com