gpt4 book ai didi

symfony - 文件上传: How to exclude a MIME type using asserts?

转载 作者:行者123 更新时间:2023-12-02 10:32:27 25 4
gpt4 key购买 nike

在 Symfony 中我可以使用以下方式接受 MIME 类型:

/**
* @Assert\File( maxSize="10M", mimeTypes={"application/pdf", "image/png"} )
*/
public $file;

但是我怎样才能从该列表中排除某些内容呢?假设我想允许除 PHP 文件之外的所有上传?

最佳答案

您可以实现 Callback constraint通过断言。此方法的优点之一是您可以将错误消息应用到表单中的任何字段(或多个字段)。

use Symfony\Component\Validator\ExecutionContext;

/**
* @ORM\Entity()
* @Assert\Callback(methods={"validateFile"})
*/
class MyEntity
{

public function validateFile(ExecutionContext $context)
{
$path = $context->getPropertyPath();
if (/* $this->file is not in allowed mimeTypes ... */) {
$context->setPropertyPath($path . '.file');
$context->addViolation("Invalid file mimetype", array(), null);
}
}
}

关于symfony - 文件上传: How to exclude a MIME type using asserts?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12087738/

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