gpt4 book ai didi

php - Laravel 5.1 中上传文件的安全性

转载 作者:行者123 更新时间:2023-11-29 07:25:48 25 4
gpt4 key购买 nike

我不太擅长 Laravel 5.1。我需要你们的帮助...

为什么它会上传不在我的请求文件列表中的其他文件?我只想上传请求文件上的规则函数。

这是我的新更新 Controller

public function store(UploadFiles $filename) {

$input = Input::all();
$rules = array('filename' => 'mimes:pdf,doc,jpeg,png,docx');
$validator = Validator::make($input, $rules);

if($validator->fails()) {
$messages = $validator->messages();
print_r($messages);
} else {
$file = $filename->file('filefield');
$extension = $file->getClientOriginalExtension();
$entry = new Fileentry();
$entry->mime = $file->getClientMimeType();
$entry->original_filename = $file->getClientOriginalName();
$entry->filename = $file->getFilename().'.'.$extension;
$entry->description = Request::input('description');
Storage::disk('local')->put($file->getFilename().'.'.$extension, File::get($file));
$entry->user_id = Auth::user()->id;
return redirect('upload');
}
}

我的请求:UploadFiles.php

public function authorize() {
return true;
}

/**
* Get the validation rules that apply to the request.
*
* @return array
*/
public function rules() {
return ['filename' => 'mimes:pdf,doc,jpeg,png,docx'];
}

这是我的index.blade.php

<form action="{{route('addentry', [])}}" method="post" enctype="multipart/form-data">
<input type="hidden" name="_token" value="{!! csrf_token() !!}">
<input type="file" name="filefield" required>
<br>

Description <br>
<div class="form-group">
<input type="textarea" name="description"><br>
</div>
<input type="submit">
</form>

最佳答案

您应该将规则 arr 传递给验证器。

你的代码应该是这样的:

$input = Input::all();
$rules = array('filename' => 'mimes:pdf,doc,jpeg,png,docx');
$validator = Validator::make($input, $rules);

if ($validator->fails()) {
$messages = $validator->messages();
print_r($messages);
} else {
//your upload code here
}

关于php - Laravel 5.1 中上传文件的安全性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34586353/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com