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