在表单提交失败后,您可以使用PHP或JavaScript重新填充文件输入吗?

2022-08-30 14:18:26

好的,所以这是场景:

向用户显示包含文件输入的表单。用户提交表单。表单由于某种原因未通过验证/验证。用户将看到突出显示错误的表单。文件输入现在为空。

问题:

是否可以使用用户最初选择的文件的路径重新填充文件输入。PHP解决方案是理想的,但我也对JavaScript解决方案持开放态度。


答案 1

我认为这里的简短答案是否定的。您无法重新填充文件上传字段。但是,您可以变通解决此问题。

如果已选择文件并提交了表单,则您已经收到了该文件。您可以做的是将对文件的引用保留在磁盘上,并将其放在隐藏字段中,并显示一条消息以向用户指示您仍然上传了他们的文件,因此不需要替换/重新上传。当您的表单在没有文件的情况下再次提交时,您可以检查隐藏字段值,并使用它来获取他们在上次尝试中上传的文件的本地副本。

另一种方法是通过ajax提交表单(使用flash或iframe方法进行文件上传),或者执行ajax调用以首先验证表单,然后仅在有效的情况下正常提交(因此不会重新加载表单,不会丢失文件上传字段数据)。


答案 2

我通过让用户在提交表单之前选择上传文件作为最后一个字段来解决此问题^^