【发布时间】:2021-10-27 12:00:09
【问题描述】:
验证表单与另一个扩展程序一起成功,但不适用于.doc。
<form method="POST" action="{{ route('documents.store') }}" class="needs-validation" novalidate enctype="multipart/form-data">
@csrf
<label for="document" class="form-label">
File <strong class="text-azul">(Files accepteds: PDF,WORD,JPG,PNG)</strong>
</label>
<input class="form-control" type="file" id="document" name="document" accept=".doc,.docx,.pdf,.png,.jpg" required>
<x-jet-button>{{ __('Save') }}</x-jet-button>
</form>
在控制器中:
$request->validate([
'document' => 'file|mimes:doc,docx,pdf,png,jpg,jpeg',
]);
在选择扩展名为 .doc 的文件时,它返回:
文档必须是以下类型的文件:doc、docx、pdf、png、jpg、jpeg。
【问题讨论】:
-
我不确定 Laravel 最终读取的 MIME 是什么。请参阅documentation。您的 MIME 应该没问题,只是为了测试,正好在验证之前执行
dd($request->file('document'));,这样我们就可以看到文件信息,包括它的 MIME。 -
我的问题是一个损坏的文档。我尝试了一个新文档,它可以工作。 Mimetypes 无法处理损坏的文档。谢谢
标签: php laravel validation