fat-free 框架中的文件验证
file validation in fat-free framewirk
我想上传任何类型的多个文件,并且在验证检查失败时,我也想显示验证消息。
我一直在关注 f3 文档。如果文件未通过验证检查,此代码只会跳过文件移动。
$f3->route('GET|POST|PUT /uploadfile',
function($f3) use($db){
$f3->set('UPLOADS','uploads/');
$overwrite = false; Default: false
$slug = true;
$web = \Web::instance();
$files = $web->receive(function($file){
if($file['size'] > (2 * 1024 * 1024))
return false;
// everything went fine, hurray!
return true;
},
$overwrite,
$slug
);
}
);
如何在验证失败时向用户显示消息?
很感谢任何形式的帮助。谢谢
这取决于你如何处理这件事。基本上,当上传多个文件时,你可能想跟踪你在一个数组中产生的错误,所以可能是这样的:
$web = \Web::instance();
$errors=[];
$files = $web->receive(function($file) use ($errors) {
if($file['size'] > (2 * 1024 * 1024)) {
$errors[ $file['name'] ] = 'File too large';
return false;
}
return true;
},
$overwrite,$slug
);
if ($errors) {
$f3->status(413);
echo json_encode($errors);
exit();
}
我想上传任何类型的多个文件,并且在验证检查失败时,我也想显示验证消息。
我一直在关注 f3 文档。如果文件未通过验证检查,此代码只会跳过文件移动。
$f3->route('GET|POST|PUT /uploadfile',
function($f3) use($db){
$f3->set('UPLOADS','uploads/');
$overwrite = false; Default: false
$slug = true;
$web = \Web::instance();
$files = $web->receive(function($file){
if($file['size'] > (2 * 1024 * 1024))
return false;
// everything went fine, hurray!
return true;
},
$overwrite,
$slug
);
}
);
如何在验证失败时向用户显示消息? 很感谢任何形式的帮助。谢谢
这取决于你如何处理这件事。基本上,当上传多个文件时,你可能想跟踪你在一个数组中产生的错误,所以可能是这样的:
$web = \Web::instance();
$errors=[];
$files = $web->receive(function($file) use ($errors) {
if($file['size'] > (2 * 1024 * 1024)) {
$errors[ $file['name'] ] = 'File too large';
return false;
}
return true;
},
$overwrite,$slug
);
if ($errors) {
$f3->status(413);
echo json_encode($errors);
exit();
}