重定向时保留表单输入的文件路径?

时间:2011-11-06 17:32:32

标签: php forms cakephp

我正在使用CakePHP编写Web应用程序。现在,在保存失败后使用cake并将其重定向回添加或编辑屏幕,插入的数据将返回到表单字段中供用户编辑。这正是我想要的,问题是文件上传字段没有保留。当用户选择要上载的图像时,有没有办法保留文件输入表单字段的路径?

由于

2 个答案:

答案 0 :(得分:2)

现代浏览器会模糊文件输入的值以隐藏有关客户端文件系统的信息。这包括通过javascript访问输入值,浏览器将返回C:\fakepath\file.txt之类的内容。

通常也不允许通过在HTML中设置value属性或通过javascript来设置文件输入的值。因此,即使您能够以某种方式找出它的内容,您也无法恢复输入字段的先前值。在这里试试自己:

http://jsfiddle.net/MP39Q/2/

(这些限制中有一些例外,例如早期版本的IE,但我认为这对你没有帮助。)

由于用户的路径未发送作为表单数据的一部分,it will not be available in PHP

您的案例中的解决方案可能是将上传的文件保留在服务器上。发生保存错误时,将对临时文件的适当引用传递回表单(例如,通过会话数据),并允许用户选择是保留原始文件,还是在更正其他部分时选择要上载的新文件形式。

答案 1 :(得分:0)

你可以,但我不认为这是一个好主意:如果用户没有响应一段时间并且会话超时,则该文件可能会被删除。您应该以单独的形式(在单独的页面上)制作上传文件,或手动管理您自己的上传过程。