【发布时间】:2014-10-02 00:06:29
【问题描述】:
我正在使用 Laravel 4.1,我正在尝试使用内置的验证器选项将上传文件的大小限制为 2mb。
但是,当我使用超大文件 (10mb) 测试验证时,验证不会触发。而是 Input::all() 完全为空,导致出现其他错误。
我在使用文件进行表单验证方面有什么遗漏吗?
这是我正在使用的验证器
$validator = Validator::make(Input::all(),
array(
'submission_status' => 'required',
'photo' => 'required_if:submission_status,Received|max:1200',
),
$messages
);
模板代码 - 使用 Twig 作为模板引擎
{{ form_open({'url': request_url(), 'method': 'post', 'role': 'form', 'name': 'photo_form', 'id': 'photo-form', 'enctype': 'multipart/form-data'})|raw }}
<div class="row">
<div class="col-md-12">
Please submit a photo of just yourself. A head-and-shoulders photo works well.
</div>
</div>
<div class="row">
<div class="col-md-1"> </div>
<div class="col-md-11">
{{ form_radio('submission_status', 'Received', false, {'id': 'photo-now', 'required': 'required', 'aria-describedby': 'submission-status-error'})|raw }} Upload photo now (The file should be no larger than 1.2 megabytes, and in jpeg format)<br />
{{ form_radio('submission_status', 'Photo by Web promised', false, {'id': 'photo-later', 'required': 'required', 'aria-describedby': 'submission-status-error'})|raw }} Upload photo later<br />
{{ form_radio('submission_status', 'No photo desired', false, {'id': 'no-photo', 'required': 'required', 'aria-describedby': 'submission-status-error'})|raw }} No photo desired<br />
<span class="error" id="submission-status-error"></span>
</div>
</div>
<div id="photo-now-form">
<div> </div>
<div class="row">
<div class="col-md-12">
<p>Please select a photograph of <b>just</b> yourself in jpeg format.<br />
<ul>
<li>Filenames must have a ".jpg" extension (e.g., myphoto.jpg).</li>
<li>The image should be about 4 x 5 inches and have a resolution of 200 pixels per inch.</li>
<li>The jpeg file should be between 500 and 1,200 kilobytes (0.5 to 1.2 MB).</li>
</ul>
</p>
</div>
</div>
<div> </div>
<div class="row">
<div class="form-group col-md-6">
{{ form_file('photo', {'class': 'form-control', 'id': 'photo', 'required': 'required'})|raw }}
</div>
</div> <!-- row -->
</div>
<hr />
<div class="row">
<div class="form-group col-md-4 col-md-offset-4">
{{ form_hidden('_id', candidate._id, {'class': 'form-control', 'id': '_id'})|raw }}
{{ form_hidden("candidate_id", candidate.candidate_id, {'class': 'form-control', 'id': 'candidate-id'})|raw }}
{{ form_hidden('page', page, {'class': 'form-control', 'id': 'page'})|raw }}
{{ form_submit('Submit', {'id': 'save-questionnaire', 'class': 'form-control btn btn-primary'})|raw }}
</div>
</div>
{{ form_close()|raw }}
谢谢! --丽莎
【问题讨论】:
-
您能否发布表单的 HTML。
-
原始模板更有用,还是呈现的 HTML 更有用?
-
我不太了解 Twig,但我在您的表单中看不到任何“名称”属性。注释掉您的文件上传字段,并尝试使用普通字段,直到
Input::all()包含某些内容。 -
我可以毫无问题地上传较小的文件。我认为这是在文件大小大于 PHP 允许的大小时发生的,我不知道如何弥补这一点。
标签: validation laravel-4