我有Symfony 1.4表格:
$this->setWidget('title', new sfWidgetFormInputText());
$this->setWidget('photo', new sfWidgetFormInputFile());
如果我发送此表单,并且他有效,则显示错误的页面。在输入中,TITLE是我输入的前一个文本,但没有附加文件的链接。我必须再次搜索此文件并选择。我该如何解决?
答案 0 :(得分:2)
文件输入在客户机的机器(而不是服务器)上获取文件的本地路径,因此请考虑这个(假设的)场景:
这也是一个重大的安全风险。假设您编写了一个包含表单和文件输入的恶意脚本。如果您知道客户端计算机上文件的路径,那么您可以预先填充文件输入,然后使用JavaScript提交表单以强制用户上传文件。
这就是为什么你不能用HTML预先填充文件输入的原因。
作为替代方案,您应该使用sfWidgetFormInputFileEditable
,它将在文件输入旁边显示以前上传的图像。但是,只有在表单提交并保存成功后才会显示。