我的网站上的表单有问题。表单包含一些文本输入和文件上载输入。如果某些文本字段未正确填充,则会出现错误并重新加载页面。但是:如果我选择了一个文件,请不要正确填写其他文件并重新加载页面,我必须再次选择我的文件,它不会保存在表单中。
有人可以帮帮我吗?
答案 0 :(得分:2)
出于安全原因,您无法在客户端或服务器上设置文件输入的值。
我可以想到这些可能的解决方法:
This post提供了一种服务器端解决方案的方法,包括在页面中放入一个引用先前上载文件的ID而不是实际文件输入本身(因为文件可能已经上传)
许多接受文件上传的网站都是以某种形式分开的。完成文件上载,然后填写表格的其余部分并与服务器一起提交,保持先前上载的文件与将提交给服务器的当前操作之间的参考连接。流行的论坛软件vBulletin以这种方式用于消息附件。附件以单独的表单/ UI上传。
您可以通过ajax提交表单,而不是提交表单。因为ajax调用不会更改当前页面,如果通过ajax从提交中获得错误,则当前页面和所选文件输入仍然存在。您可以使用javascript将错误报告添加到当前页面,并以这种方式向用户显示错误。
您还可以通过在提交表单之前使用javascript进行尽可能多的客户端验证来避免大部分此问题(不是全部考虑),这样可以减少服务器拒绝表单提交的可能性。