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

时间:2011-07-27 10:03:05

标签: php javascript forms file-upload input

好的,这就是场景:

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

问题:

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

2 个答案:

答案 0 :(得分:38)

我认为这里简短的答案是否定的。您无法重新填充文件上载字段。但是,你可以解决它。

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

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

答案 1 :(得分:1)

我解决了这个问题,让用户在提交表单^^

之前选择上传文件作为最后一个字段