pub struct FileValidateRule {
pub file_size: Option<u64>,
pub file_ext: Option<Vec<String>>,
pub file_mime: Option<Vec<String>>,
}Expand description
文件校验规则 — 对齐 PHP Driver::validate 的 fileSize/fileExt/fileMime 规则
PHP 原始规则(app/common/library/storage/Driver.php 第 29-33 行):
validate([$name=>[
'fileSize' => 20971520,
'fileExt' => 'jpg,jpeg,png,gif,bmp',
'fileMime' => 'image/jpeg,image/png,image/gif,image/bmp',
]])§字段语义
file_size:None表示不校验大小(对齐 PHP 未设置fileSize规则)file_ext:None表示不校验扩展名file_mime:None表示不校验 MIME
Fields§
§file_size: Option<u64>最大文件大小(字节),None 表示不校验
file_ext: Option<Vec<String>>扩展名白名单(小写),None 表示不校验
file_mime: Option<Vec<String>>MIME 白名单(小写),None 表示不校验
Implementations§
Source§impl FileValidateRule
impl FileValidateRule
Sourcepub fn new() -> FileValidateRule
pub fn new() -> FileValidateRule
创建空规则(不校验任何项)
Sourcepub fn with_size(self, size: u64) -> FileValidateRule
pub fn with_size(self, size: u64) -> FileValidateRule
设置最大文件大小(对齐 PHP 'fileSize' => 20971520)
Sourcepub fn with_ext(self, ext: &str) -> FileValidateRule
pub fn with_ext(self, ext: &str) -> FileValidateRule
设置扩展名白名单(从逗号分隔字符串解析,对齐 PHP explode(',', $ext) + strtolower)
Sourcepub fn with_ext_vec(self, ext: Vec<String>) -> FileValidateRule
pub fn with_ext_vec(self, ext: Vec<String>) -> FileValidateRule
设置扩展名白名单(从 Vec,自动 lowercase)
Sourcepub fn with_mime(self, mime: &str) -> FileValidateRule
pub fn with_mime(self, mime: &str) -> FileValidateRule
设置 MIME 白名单(从逗号分隔字符串解析)
Sourcepub fn with_mime_vec(self, mime: Vec<String>) -> FileValidateRule
pub fn with_mime_vec(self, mime: Vec<String>) -> FileValidateRule
设置 MIME 白名单(从 Vec,自动 lowercase)
Sourcepub fn default_image() -> FileValidateRule
pub fn default_image() -> FileValidateRule
默认图片校验规则 — 对齐 PHP Driver::validate 第 30-32 行
PHP 原始规则:
'fileSize' => 20971520, // 20MB(PHP 注释错误标为 "2M")
'fileExt' => 'jpg,jpeg,png,gif,bmp',
'fileMime' => 'image/jpeg,image/png,image/gif,image/bmp',Trait Implementations§
Source§impl Clone for FileValidateRule
impl Clone for FileValidateRule
Source§fn clone(&self) -> FileValidateRule
fn clone(&self) -> FileValidateRule
Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Debug for FileValidateRule
impl Debug for FileValidateRule
Source§impl Default for FileValidateRule
impl Default for FileValidateRule
Source§fn default() -> FileValidateRule
fn default() -> FileValidateRule
Returns the “default value” for a type. Read more
Auto Trait Implementations§
impl Freeze for FileValidateRule
impl RefUnwindSafe for FileValidateRule
impl Send for FileValidateRule
impl Sync for FileValidateRule
impl Unpin for FileValidateRule
impl UnsafeUnpin for FileValidateRule
impl UnwindSafe for FileValidateRule
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
Source§fn in_current_span(self) -> Instrumented<Self> ⓘ
fn in_current_span(self) -> Instrumented<Self> ⓘ
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§impl<T> Pointable for T
impl<T> Pointable for T
impl<T> Read<Exclusive, BecauseExclusive> for Twhere
T: ?Sized,
Source§impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
Source§fn to_subset(&self) -> Option<SS>
fn to_subset(&self) -> Option<SS>
The inverse inclusion map: attempts to construct
self from the equivalent element of its
superset. Read moreSource§fn is_in_subset(&self) -> bool
fn is_in_subset(&self) -> bool
Checks if
self is actually part of its subset T (and can be converted to it).Source§fn to_subset_unchecked(&self) -> SS
fn to_subset_unchecked(&self) -> SS
Use with care! Same as
self.to_subset but without any property checks. Always succeeds.Source§fn from_subset(element: &SS) -> SP
fn from_subset(element: &SS) -> SP
The inclusion map: converts
self to the equivalent element of its superset.