2011-11-06 60 views
0

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

感谢

回答

2

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

通常不允许设置文件输入的值,通过在HTML中设置value属性或通过javascript设置。因此,即使您可以以某种方式查明它是什么,您也无法恢复输入字段的先前值。尝试为自己在这里:

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

(有一些例外,其中的一些限制,如早期版本的IE浏览器,但我想这并不能帮助你。)

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

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

0

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