【发布时间】:2013-03-13 00:41:00
【问题描述】:
以下两个问题澄清了input file的值由于安全原因不能更改。
在 PHP 中,在验证表单时,一种常用的方法是重新填写在单击 submit 按钮之前提供的 input text 中输入的值,以便客户端知道他插入了什么,或者简单地说保留字段中的值,这是客户所期望的。 (他不必每次出现特定错误时都重新填写表格。
所以我们使用以下内容:
<input type="text" name="title" id="title" maxlength="100" value="<?php echo htmlspecialchars($title);?>" />
所以由于我无法更改input file 的值,所以我可以使用提供的路径$image['tmp_name'] 重新填充它,这意味着客户端必须重新上传(或重新浏览)每个图像验证出错时,是否有任何可能的方法来保持该值?
【问题讨论】:
-
好吧,首先,在提交之前进行验证(但不可靠,所以不要相信它),然后“禁止”您确实收到的下载并保留对文件,告诉用户您将在重新提交时维护该文件。然后,每隔一段时间,删除从未移动到适当位置的文件。
-
您可以使用 javascript 验证来阻止表单在有效之前发布。
-
或者... base64 对文件源进行编码,将其发送回表单中的
hidden字段,并在返回时取消编码?显然,对于非常大的文件,这不是一个好主意,因此需要进行一些完整性检查。