更改输入文件的值

时间:2013-03-13 00:41:01

标签: php html input

以下两个问题澄清了input file的价值因安全原因无法更改。

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

所以我们使用以下内容:

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

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

3 个答案:

答案 0 :(得分:0)

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

实际上,我建议不要更换字段,而是建议他们根据需要在其位置上传其他文件。

答案 1 :(得分:0)

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

生成一个复选框,其值为引用与该文件关联的ID。默认情况下进行检查。

如果用户不想重复使用同一文件,请告知用户取消选中。

答案 2 :(得分:0)

使用javascript,您可以阻止在提交所有字段之前提交表单。

我推荐包含jQuery Validation Engine教程。 demos

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

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

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

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