upload big files

This commit is contained in:
Arno Kaimbacher 2019-07-04 18:46:03 +02:00
parent a463cb9e4c
commit ad2e1ce378
5 changed files with 83 additions and 61 deletions

View File

@ -271,7 +271,7 @@ class IndexController extends Controller
$files = count($request->file('files')) - 1; $files = count($request->file('files')) - 1;
foreach (range(0, $files) as $index) { foreach (range(0, $files) as $index) {
// $rules['files.' . $index] = 'image|max:2048'; // $rules['files.' . $index] = 'image|max:2048';
$rules['files.' . $index . '.file'] = ['required', new RdrFiletypes(), new RdrFilesize($index + 1)]; $rules['files.' . $index . '.file'] = [new RdrFilesize($index + 1), 'file', 'required', new RdrFiletypes()];
} }
} }
$validator = Validator::make($request->all(), $rules); $validator = Validator::make($request->all(), $rules);
@ -480,9 +480,10 @@ class IndexController extends Controller
} else { } else {
//TODO Handle validation error //TODO Handle validation error
//pass validator errors as errors object for ajax response //pass validator errors as errors object for ajax response
$errors = $validator->errors();
return response()->json([ return response()->json([
'success' => false, 'success' => false,
'errors' => $validator->errors()->all(), 'errors' => $errors->all(),
], 422); ], 422);
} }
} }

View File

@ -1,4 +1,4 @@
; Override value of upload_max_filesize ; Override value of upload_max_filesize
upload_max_filesize = 5M upload_max_filesize = 10M
post_max_size =8M post_max_size =10M
memory_limit = 100M memory_limit = 100M

File diff suppressed because one or more lines are too long

View File

@ -351,10 +351,17 @@ const app = new Vue({
_this.serrors.push(errorsArray[index]); _this.serrors.push(errorsArray[index]);
} }
} }
//fill with server error
if (errorObject.response.data.error) { if (errorObject.response.data.error) {
var error = errorObject.response.data.error; var error = errorObject.response.data.error;
_this.serrors.push(error.message); _this.serrors.push(error.message);
} }
//raundtrip to server was not possible
if (error.message && error.message.includes('413')) {
console.log('The file you tried to upload is too large.')
var error = 'The file you tried to upload is too large.';
_this.serrors.push(error);
}
_this.currentStatus = STATUS_FAILED; _this.currentStatus = STATUS_FAILED;
}); });
}, },

View File

@ -13,66 +13,80 @@ return [
| |
*/ */
"accepted" => "The :attribute must be accepted.", 'accepted' => 'The :attribute must be accepted.',
"active_url" => "The :attribute is not a valid URL.", 'active_url' => 'The :attribute is not a valid URL.',
"after" => "The :attribute must be a date after :date.", 'after' => 'The :attribute must be a date after :date.',
"alpha" => "The :attribute may only contain letters.", 'after_or_equal' => 'The :attribute must be a date after or equal to :date.',
"alpha_dash" => "The :attribute may only contain letters, numbers, and dashes.", 'alpha' => 'The :attribute may only contain letters.',
"alpha_num" => "The :attribute may only contain letters and numbers.", 'alpha_dash' => 'The :attribute may only contain letters, numbers, and dashes.',
"array" => "The :attribute must be an array.", 'alpha_num' => 'The :attribute may only contain letters and numbers.',
"before" => "The :attribute must be a date before :date.", 'array' => 'The :attribute must be an array.',
"between" => [ 'before' => 'The :attribute must be a date before :date.',
"numeric" => "The :attribute must be between :min and :max.", 'before_or_equal' => 'The :attribute must be a date before or equal to :date.',
"file" => "The :attribute must be between :min and :max kilobytes.", 'between' => [
"string" => "The :attribute must be between :min and :max characters.", 'numeric' => 'The :attribute must be between :min and :max.',
"array" => "The :attribute must have between :min and :max items.", 'file' => 'The :attribute must be between :min and :max kilobytes.',
'string' => 'The :attribute must be between :min and :max characters.',
'array' => 'The :attribute must have between :min and :max items.',
], ],
"boolean" => "The :attribute field must be true or false.", 'boolean' => 'The :attribute field must be true or false.',
"confirmed" => "The :attribute confirmation does not match.", 'confirmed' => 'The :attribute confirmation does not match.',
"date" => "The :attribute is not a valid date.", 'date' => 'The :attribute is not a valid date.',
"date_format" => "The :attribute does not match the format :format.", 'date_format' => 'The :attribute does not match the format :format.',
"different" => "The :attribute and :other must be different.", 'different' => 'The :attribute and :other must be different.',
"digits" => "The :attribute must be :digits digits.", 'digits' => 'The :attribute must be :digits digits.',
"digits_between" => "The :attribute must be between :min and :max digits.", 'digits_between' => 'The :attribute must be between :min and :max digits.',
"email" => "The :attribute must be a valid email address.", 'dimensions' => 'The :attribute has invalid image dimensions.',
"filled" => "The :attribute field is required.", 'distinct' => 'The :attribute field has a duplicate value.',
"exists" => "The selected :attribute is invalid.", 'email' => 'The :attribute must be a valid email address.',
"image" => "The :attribute must be an image.", 'exists' => 'The selected :attribute is invalid.',
"in" => "The selected :attribute is invalid.", 'file' => 'The :attribute must be a file.',
"integer" => "The :attribute must be an integer.", 'filled' => 'The :attribute field must have a value.',
"ip" => "The :attribute must be a valid IP address.", 'image' => 'The :attribute must be an image.',
"max" => [ 'in' => 'The selected :attribute is invalid.',
"numeric" => "The :attribute may not be greater than :max.", 'in_array' => 'The :attribute field does not exist in :other.',
"file" => "The :attribute may not be greater than :max kilobytes.", 'integer' => 'The :attribute must be an integer.',
"string" => "The :attribute may not be greater than :max characters.", 'ip' => 'The :attribute must be a valid IP address.',
"array" => "The :attribute may not have more than :max items.", 'ipv4' => 'The :attribute must be a valid IPv4 address.',
'ipv6' => 'The :attribute must be a valid IPv6 address.',
'json' => 'The :attribute must be a valid JSON string.',
'max' => [
'numeric' => 'The :attribute may not be greater than :max.',
'file' => 'The :attribute may not be greater than :max kilobytes.',
'string' => 'The :attribute may not be greater than :max characters.',
'array' => 'The :attribute may not have more than :max items.',
], ],
"mimes" => "The :attribute must be a file of type: :values.", 'mimes' => 'The :attribute must be a file of type: :values.',
"min" => [ 'mimetypes' => 'The :attribute must be a file of type: :values.',
"numeric" => "The :attribute must be at least :min.", 'min' => [
"file" => "The :attribute must be at least :min kilobytes.", 'numeric' => 'The :attribute must be at least :min.',
"string" => "The :attribute must be at least :min characters.", 'file' => 'The :attribute must be at least :min kilobytes.',
"array" => "The :attribute must have at least :min items.", 'string' => 'The :attribute must be at least :min characters.',
'array' => 'The :attribute must have at least :min items.',
], ],
"not_in" => "The selected :attribute is invalid.", 'not_in' => 'The selected :attribute is invalid.',
"numeric" => "The :attribute must be a number.", 'numeric' => 'The :attribute must be a number.',
"regex" => "The :attribute format is invalid.", 'present' => 'The :attribute field must be present.',
"required" => "The :attribute field is required.", 'regex' => 'The :attribute format is invalid.',
"required_if" => "The :attribute field is required when :other is :value.", 'required' => 'The :attribute field is required.',
"required_with" => "The :attribute field is required when :values is present.", 'required_if' => 'The :attribute field is required when :other is :value.',
"required_with_all" => "The :attribute field is required when :values is present.", 'required_unless' => 'The :attribute field is required unless :other is in :values.',
"required_without" => "The :attribute field is required when :values is not present.", 'required_with' => 'The :attribute field is required when :values is present.',
"required_without_all" => "The :attribute field is required when none of :values are present.", 'required_with_all' => 'The :attribute field is required when :values is present.',
"same" => "The :attribute and :other must match.", 'required_without' => 'The :attribute field is required when :values is not present.',
"size" => [ 'required_without_all' => 'The :attribute field is required when none of :values are present.',
"numeric" => "The :attribute must be :size.", 'same' => 'The :attribute and :other must match.',
"file" => "The :attribute must be :size kilobytes.", 'size' => [
"string" => "The :attribute must be :size characters.", 'numeric' => 'The :attribute must be :size.',
"array" => "The :attribute must contain :size items.", 'file' => 'The :attribute must be :size kilobytes.',
'string' => 'The :attribute must be :size characters.',
'array' => 'The :attribute must contain :size items.',
], ],
"unique" => "The :attribute has already been taken.", 'string' => 'The :attribute must be a string.',
"url" => "The :attribute format is invalid.", 'timezone' => 'The :attribute must be a valid zone.',
"timezone" => "The :attribute must be a valid zone.", 'unique' => 'The :attribute has already been taken.',
'uploaded' => 'The :attribute failed to upload.',
'url' => 'The :attribute format is invalid.',
/* /*
|-------------------------------------------------------------------------- |--------------------------------------------------------------------------