Adding extra size validation rule

parent 5d4fba7d
...@@ -9,8 +9,25 @@ class UploadDropzoneMediaRequest extends FormRequest ...@@ -9,8 +9,25 @@ class UploadDropzoneMediaRequest extends FormRequest
{ {
public function rules() public function rules()
{ {
$extensions = 'mimes:' . str_replace('.', '', config('asgard.media.config.allowed-types'));
$maxFileSize = $this->getMaxFileSizeInKilobytes();
return [
'file' => [
'required',
new MaxFolderSizeRule(),
$extensions,
"size:$maxFileSize",
],
];
}
public function messages()
{
$size = $this->getMaxFileSize();
return [ return [
'file' => ['required', new MaxFolderSizeRule()], 'file.size' => "File is too large. Must be below {$size}MB."
]; ];
} }
...@@ -18,4 +35,14 @@ class UploadDropzoneMediaRequest extends FormRequest ...@@ -18,4 +35,14 @@ class UploadDropzoneMediaRequest extends FormRequest
{ {
return true; return true;
} }
private function getMaxFileSizeInKilobytes()
{
return $this->getMaxFileSize() * 1000;
}
private function getMaxFileSize()
{
return config('asgard.media.config.max-file-size');
}
} }
...@@ -10,9 +10,24 @@ class UploadMediaRequest extends FormRequest ...@@ -10,9 +10,24 @@ class UploadMediaRequest extends FormRequest
public function rules() public function rules()
{ {
$extensions = 'mimes:' . str_replace('.', '', config('asgard.media.config.allowed-types')); $extensions = 'mimes:' . str_replace('.', '', config('asgard.media.config.allowed-types'));
$maxFileSize = $this->getMaxFileSizeInKilobytes();
return [ return [
'file' => ['required', new MaxFolderSizeRule(), $extensions], 'file' => [
'required',
new MaxFolderSizeRule(),
$extensions,
"size:$maxFileSize",
],
];
}
public function messages()
{
$size = $this->getMaxFileSize();
return [
'file.size' => "File is too large. Must be below {$size}MB."
]; ];
} }
...@@ -20,4 +35,14 @@ class UploadMediaRequest extends FormRequest ...@@ -20,4 +35,14 @@ class UploadMediaRequest extends FormRequest
{ {
return true; return true;
} }
private function getMaxFileSizeInKilobytes()
{
return $this->getMaxFileSize() * 1000;
}
private function getMaxFileSize()
{
return config('asgard.media.config.max-file-size');
}
} }
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment