Laravel-如何更新包含文件输入类型的表单



我一直在尝试更新一个具有文件输入的表单。我希望用户只在对以前设置的文件不满意的情况下更改文件,否则在提交表单时,以前设置的文档将在数据库中更新。从我的数据库中提取的数据(即以前保存的文件信息(是$query->document->name,它表示文件的名称

我的表单代码如下:

<div class="col-md-6">
<div class="form-group">
<label for="account_statement">{{$form->name}} :*</label>
<input class="form-control" value="{{$query->document->name}}" id="{{$form->short_name}}" name="{{$form->short_name}}" type="file">

</div>
</div>

然而,我编写的代码并没有得到我想要的结果。表单甚至没有显示已经设置了文件。

出于安全原因,浏览器不允许您设置输入文件的值。您必须使用javascript来确定该文件是否存在。

html代码将包含两个显示,一个显示文件(如果存在(,另一个显示输入文件。然后使用javascript来确定何时显示哪个显示。类似这样的东西:

<span id="documentName">{{$form->document}}</span> <button id="removeFile">Remove</button>
<input class="form-control d-none" id="document" name="document" type="file"/>

Javascript

// I assume you are using bootstrap and hence jQuery
<script>
$('button#removeFile').click(function(e) {
if(@{{ form->name }})
$('documentName').addClass('d-none')
$('document').removeClass(d-none')
}
}
</script>

最新更新