1

以下两个问题阐明了input file由于安全原因无法更改的值。

input text在 PHP 中,当验证表单时,一种常用的方法是在单击按钮之前重新填写输入的值submit,以便客户端知道他插入了什么,或者只是将值保留在字段中,这是客户所期望的。(每次出现特定错误时,他都不必重新填写表格)。

所以我们使用以下内容:

<input type="text" name="title" id="title" maxlength="100" value="<?php echo htmlspecialchars($title);?>" />

因此,由于我无法更改 的值input file,所以我可以用提供的路径重新填充它$image['tmp_name'],这意味着每次验证出错时客户端都必须重新上传(或重新浏览)图像,不是有什么可能的方法来保持这个价值?

4

3 回答 3

0

您可以存储文件而不管表单中的其他验证错误(显然只有文件本身有效),然后用文件详细信息替换文件上传字段(例如列出文件名和大小)。

实际上,与其替换该字段,我建议让他们选择在其位置上传不同的文件,如果他们愿意的话。

于 2013-03-13T00:46:16.153 回答
0

将上传的文件存储在服务器上。

生成一个复选框,其值引用与该文件关联的 id。使其默认选中。

如果他们不想重复使用同一个文件,请告诉用户取消选中它。

于 2013-03-13T00:47:02.030 回答
0

使用 javascript,您可以阻止提交表单,直到所有字段都得到验证。

我推荐包含jQuery Validation Engine教程。演示

您还可以使用jQuery 文件上传为图像上传器添加一些样式。

当然,必须在服务器上验证某些字段,这就是您可以使用验证引擎发布 ajax 请求的原因。

"ajaxUserCall": {
    "url": "ajaxValidateFieldUser",
    "extraData": "name=eric",
    "alertText": "* This user is already taken",
    "alertTextOk": " * User is valid",
    "alertTextLoad": "* Validating, please wait"
},

一些没有重定向或刷新的服务器端验证示例:Demo

于 2013-03-13T01:02:41.033 回答