【问题标题】:upload - resend form - attach files - Symfony上传 - 重新发送表单 - 附加文件 - Symfony
【发布时间】:2011-09-03 10:37:43
【问题描述】:

我有 Symfony 1.4 的形式:

$this->setWidget('title', new sfWidgetFormInputText());
$this->setWidget('photo', new sfWidgetFormInputFile());

如果我发送此表格,并且他有效,则显示错误页面。在输入 TITLE 是我输入的以前的文本,但没有附加文件的链接。我必须再次搜索此文件并选择。我该如何解决?

【问题讨论】:

    标签: php symfony1 doctrine symfony-1.4


    【解决方案1】:

    简而言之,你不能。这是 HTML 文件输入的症状。

    文件输入采用客户端机器(而不是服务器)上文件的本地路径,因此请考虑以下(假设的)场景:

    1. 用户 A 上传文件并保存文章
    2. 用户 B 编辑文章,文件输入预填充了用户 A 上传的文件的路径(但用户 B 的计算机上不存在该路径)。
    3. 用户 B 保存,没有文件提交。

    这也将是一个重大的安全风险。假设您编写了一个包含表单和文件输入的恶意脚本。如果您知道客户端计算机上文件的路径,那么您可以预先填充文件输入,然后使用 JavaScript 提交表单以强制用户上传文件。

    这就是您无法在 HTML 中预填充文件输入的原因。

    作为替代方案,您应该使用sfWidgetFormInputFileEditable,它将在文件输入旁边显示之前上传的图像。但是,只有在表单提交并成功保存后才会显示。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-05-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-09-15
      • 1970-01-01
      • 2019-08-06
      • 2011-12-09
      相关资源
      最近更新 更多