我有两个输入的形式:一个字符串,一个文件。
<form:form ...>
<form:input type="text" ....>
<form:input type="file" ....>
</form:form>
如果验证的字符串输入失败,则控制器路由回这个相同的观点。 当发生这种情况,该字符串字段被保留,但所选择的文件丢失。
有没有办法保存时选择视图进行重新渲染的文件?
我认为答案是否定的-并且它是内在的HTML文件输入,而不是服务器端框架。 如果问有我丢失的东西。
这是事实,文件输入值不能被保留。 那只是因为它在所有浏览器中实现。 至于我可以告诉它有潜在的安全风险的事,但我从来没有更深。
有一种可能性,以实现类似的东西虽然。 这是我们在我们的项目做的:
- 与文件上传每种形式都有,不会只要输入无效,改变UUID。
- 我们使用FineUploader期间上传到一个文件夹与此UUID作为文件夹名称,这些编辑阶段(县)asynchronosly上传文件
- 我们维持隐藏的输入(文本)与当前的上传引用
- 如果不bindingresult错误,我们处理的文件中的方法和我们的onComplete删除上传的文件夹
- 如果有错误,我们保留UUID到位,并保持输入字段,所以我们不松引用。
这个工作现在稳定,作为一个很好的副作用控制在某种程度上更容易,在我眼里也吸尘器来写,因为我们不再需要多为这些形式和另一个控制器只处理上传。
编辑: - 你可能想实现一个cronjob清除abandonned上传!