我有一个带有两个输入的表单:一个字符串,一个文件。
<form:form ...>
<form:input type="text" ....>
<form:input type="file" ....>
</form:form>
如果对字符串输入的验证失败,控制器将路由回同一视图。发生这种情况时,字符串字段会被保留,但所选文件会丢失。
有没有办法在重新渲染视图时保留选定的文件?
我认为答案是否定的——它是 HTML 文件输入所固有的,而不是服务器端框架。询问是否有我遗漏的东西。
我有一个带有两个输入的表单:一个字符串,一个文件。
<form:form ...>
<form:input type="text" ....>
<form:input type="file" ....>
</form:form>
如果对字符串输入的验证失败,控制器将路由回同一视图。发生这种情况时,字符串字段会被保留,但所选文件会丢失。
有没有办法在重新渲染视图时保留选定的文件?
我认为答案是否定的——它是 HTML 文件输入所固有的,而不是服务器端框架。询问是否有我遗漏的东西。
确实无法保留文件输入值。就像它在所有浏览器中实现的一样。据我所知,这与潜在的安全风险有关,但我从未深入。
不过,有可能实现类似的目标。这是我们在项目中所做的:
这现在工作稳定,作为一个很好的副作用,控制器在某种程度上更容易,在我看来也更干净,因为我们不再需要这些表单的 multipart 并且另一个控制器只处理上传。
编辑:-您可能想要实施一个 cronjob 来清除放弃的上传!