Las*_*eak 17 laravel laravel-5.2
我需要验证多个上传的文件,确保它们是特定类型且低于2048kb.下面似乎没有检查数组'文件'中的所有文件,只是假定发布的无效mime类型的文件,因为它似乎是检查数组对象而不是它的内容.
public function fileUpload(Request $request)
{
$validator = Validator::make($request->all(), [
'files' => 'required|mimes:jpeg,jpg,png',
]);
if ($validator->fails())
{
return response()->json(array(
'success' => false,
'errors' => $validator->getMessageBag()->toArray()
), 400); }
}
Run Code Online (Sandbox Code Playgroud)
im_*_*tsm 39
您可以像Laravel 5.2中的任何输入数组一样验证文件数组.此功能是Laravel 5.2中的新功能.你可以这样做:
$input_data = $request->all();
$validator = Validator::make(
$input_data, [
'image_file.*' => 'required|mimes:jpg,jpeg,png,bmp|max:20000'
],[
'image_file.*.required' => 'Please upload an image',
'image_file.*.mimes' => 'Only jpeg,png and bmp images are allowed',
'image_file.*.max' => 'Sorry! Maximum allowed size for an image is 20MB',
]
);
if ($validator->fails()) {
// Validation error..
}
Run Code Online (Sandbox Code Playgroud)
请试试这个:
public function fileUpload(Request $request) {
$rules = [];
$files = count($this->input('files')) - 1;
foreach(range(0, $files) as $index) {
$rules['files.' . $index] = 'required|mimes:png,jpeg,jpg,gif|max:2048';
}
$validator = Validator::make($request->all() , $rules);
if ($validator->fails()) {
return response()->json(array(
'success' => false,
'errors' => $validator->getMessageBag()->toArray()
) , 400);
}
}
Run Code Online (Sandbox Code Playgroud)
我们还可以提出请求并验证它。
php artisan make:request SaveMultipleImages
Run Code Online (Sandbox Code Playgroud)
这是请求的代码
namespace App\Http\Requests;
use App\Core\Settings\Settings;
use Illuminate\Foundation\Http\FormRequest;
class SaveMultipleImages extends FormRequest
{
/**
* Determine if the user is authorized to make this request.
*
* @return bool
*/
public function authorize()
{
return true;
}
/**
* Get the validation rules that apply to the request.
*
* @return array
*/
public function rules()
{
return ['files.*' => "mimes:jpg,png,jpeg|max:20000"];
}
}
Run Code Online (Sandbox Code Playgroud)
然后在控制器中
public function uploadImage(SaveMultipleImages $request) {
dd($request->all()['files']);
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
16711 次 |
最近记录: |