以下两个问题阐明了由于安全原因无法更改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']
我可以重新填充它,这意味着客户将不得不重新上传(或重新浏览)图像,每次验证出错时,是否有任何可能的方法来保持该值?
嗯,首先,验证之前提交(但不可靠,所以不信任它),然后在“禁运”下载您* *收到并保留对该文件的引用,告诉用户您将在重新提交时维护该文件。然后,每隔一段时间,删除从未移动到适当位置的文件。 – 2013-03-13 00:48:09
你可以使用JavaScript验证,防止表单发布,直到它有效。 – bleuscyther 2013-03-13 00:48:11
或... base64对文件源进行编码,将其发送回表单中的“隐藏”字段,并在返回时将其解码。显然,对于非常大的文件来说不是一个好主意,所以需要进行一些理智检查。 – 2013-03-13 00:50:04