好的,这是场景:
向用户呈现包含文件输入的表单。 用户提交表单。 出于某种原因,表单未通过验证/验证。 向用户显示错误突出显示的表单。 文件输入现在为空。
问题:
是否可以使用用户最初选择的文件的路径重新填充文件输入。 PHP 解决方案是理想的,但我也愿意接受 JavaScript 解决方案。
最佳答案
我认为这里的简短回答是否定的。您无法重新填充文件上传字段。但是,您可以解决它。
如果选择了一个文件并提交了表单,那么您已经收到了该文件。您可以做的是在磁盘上保留对该文件的引用并将其放在隐藏字段中并显示一条消息以向用户指示您仍然上传了他们的文件,因此不需要替换/重新上传。当您的表单在没有文件的情况下再次提交时,您可以检查隐藏字段值并使用它来获取他们上次尝试上传的文件的本地副本。
另一种方法是通过 ajax 提交表单(使用 flash 或 iframe 方法进行文件上传)或进行 ajax 调用以首先验证表单,然后仅在有效时正常提交(因此不会重新加载表单,不会丢失文件上传字段数据)。
关于php - 您能否在使用 PHP 或 JavaScript 提交表单失败后重新填充文件输入?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6842571/