以下两个问题澄清了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']
重新填充它,这意味着客户端必须重新上传(或重新浏览) )每次验证出错时的图像,是否有任何可能的方法来保持该值?
答案 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