好的,这里是场景:
用户将看到包含文件输入的表单。用户提交表单。出于某种原因,表单未通过验证/验证。向用户显示错误突出显示的表单。文件输入现在是空白的。
问题:
是否可以使用用户最初选择的文件的路径重新填充文件输入。PHP 解决方案将是理想的,但我也对 JavaScript 解决方案持开放态度。
好的,这里是场景:
用户将看到包含文件输入的表单。用户提交表单。出于某种原因,表单未通过验证/验证。向用户显示错误突出显示的表单。文件输入现在是空白的。
问题:
是否可以使用用户最初选择的文件的路径重新填充文件输入。PHP 解决方案将是理想的,但我也对 JavaScript 解决方案持开放态度。
我认为这里的简短回答是否定的。您无法重新填充文件上传字段。但是,您可以解决它。
如果已经选择了一个文件并提交了表单,那么您已经收到了该文件。您可以做的是在磁盘上保留对文件的引用并将其放在隐藏字段中并显示一条消息以向用户表明您仍然上传了他们的文件,因此不需要替换/重新上传。当您的表单在没有文件的情况下再次提交时,您可以检查隐藏字段值并使用它来获取他们上次上传的文件的本地副本。
另一种方法是通过 ajax 提交表单(使用 flash 或 iframe 方法上传文件)或先调用 ajax 来验证表单,然后仅在有效时才正常提交(因此没有表单重新加载,文件上传字段数据不会丢失)。
我通过让用户在提交表单之前选择上传文件作为最后一个字段来解决这个问题^^