[英]Phalcon 4 validation multipart/form-data multiple
Is it possible to configure the file validator of Phalcon4, where it can validate multiple uploaded files?是否可以配置 Phalcon4 的文件验证器,它可以验证多个上传的文件?
I cannot find any documentation about multiple files upload, just file upload with different form fields: https://docs.phalcon.io/4.0/en/api/phalcon_validation#validation-validator-file我找不到有关多个文件上传的任何文档,只是使用不同表单字段的文件上传: https://docs.phalcon.io/4.0/en/api/phalcon_validation#validation-validator-file
I can validate files which are uploaded one by one, but I need the form to handle multiple uploaded files at once.我可以验证一个一个上传的文件,但我需要表单来一次处理多个上传的文件。
Here is my code:这是我的代码:
HTML HTML
<input type="file" id="formFile" name="media[]" multiple>
Controller Controller
$validation = new FileUploadValidation();
$validation->validate($_FILES);
FileUploadValidation.php FileUploadValidation.php
<?php
namespace App\Validator;
use Phalcon\Validation;
use Phalcon\Validation\Validator\File as FileValidator;
class FileUploadValidation extends Validation
{
public function initialize()
{
$this->add(
['media'],
new FileValidator(
[
"maxSize" => "2M",
"messageSize" => ":field exceeds the max file size (:size)",
"allowedTypes" => [
"image/jpeg",
"image/png",
],
"messageType" => "Allowed file types are :types",
]
)
);
}
}
You can iterate on each file and validate it:您可以迭代每个文件并对其进行验证:
$validation = new FileUploadValidation();
foreach ($this->request->getUploadedFiles() as $file) {
$messages[] = $validation->validate($file);
}
if (count($messages)) {
...
}
Also, in your add
definition you do not need to place an array, just a string (replace ['media']
with 'media'
:此外,在您的add
定义中,您不需要放置一个数组,只需一个字符串(将['media']
替换为'media'
:
$this->add(
'media',
new FileValidator([...]}
);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.