文件类型验证!!用于生成的输入文件标记元素 JSP: ---- 输入id=“file5”type=“file”path=“files”name=“files”size=“40”/>其他文档 Javascript: ----------- var项目=1; 函数AddItem(){ var div=document.getElementById(“项目”); var按钮=document.getElementById(“添加”); 项目++; newitem=“”; newitem+=“其他文件”; newitem+=“”; newnode=document.createElement(“div”); setAttribute(“id”、“子项”+项); newnode.innerHTML=newitem; div.insertBefore(新建节点,按钮); } 函数deletethisRow(obj){ var fileElement=document.getElementById(“文件”+obj); var buttonElement=document.getElementById(“delButton”+obj); var childDivName=“child”+obj; 如果(按钮元素){ var child=document.getElementById(childDivName); var parent=document.getElementById(“项目”); 父母。removeChild(子女); } } ---
上面是JSP代码和JavaScript片段。。我正在尝试验证输入文件 我想只允许上传jpg、png、pdf、doc、docx文件类型?? 关于如何实现这一点有什么想法吗 感谢和问候,文件类型验证!!用于生成的输入文件标记元素 JSP: ---- 输入id=“file5”type=“file”path=“files”name=“files”size=“40”/>其他文档 Javascript: ----------- var项目=1; 函数AddItem(){ var div=document.getElementById(“项目”); var按钮=document.getElementById(“添加”); 项目++; newitem=“”; newitem+=“其他文件”; newitem+=“”; newnode=document.createElement(“div”); setAttribute(“id”、“子项”+项); newnode.innerHTML=newitem; div.insertBefore(新建节点,按钮); } 函数deletethisRow(obj){ var fileElement=document.getElementById(“文件”+obj); var buttonElement=document.getElementById(“delButton”+obj); var childDivName=“child”+obj; 如果(按钮元素){ var child=document.getElementById(childDivName); var parent=document.getElementById(“项目”); 父母。removeChild(子女); } } ---,javascript,jquery,ajax,file,validation,Javascript,Jquery,Ajax,File,Validation,上面是JSP代码和JavaScript片段。。我正在尝试验证输入文件 我想只允许上传jpg、png、pdf、doc、docx文件类型?? 关于如何实现这一点有什么想法吗 感谢和问候, Satish Krishnamurthy您可以更改输入标签: JSP: ---- <div ID="items"> input id="file5" type="file" path="files" name="files" size="40" /> Other documents &l
Satish Krishnamurthy您可以更改输入标签:
JSP:
----
<div ID="items">
input id="file5" type="file" path="files" name="files" size="40" /> Other documents
</div>
Javascript:
-----------
<script type="text/javascript">
var items=1;
function AddItem() {
var div=document.getElementById("items");
var button=document.getElementById("add");
items++;
newitem="";
newitem+="<input type=\"file\" path=\"files\" name=\"files\"";// + items;
newitem+="\"id=file"+items;
newitem+="\" size=\"40\"> Other documents";
newitem+=" <input type=\"button\" class=\"button\" id=\"delButton"+items;
newitem+="\" value=\"\" name=\"button"+items;
newitem+="\" onclick=deletethisRow("+items+")>";
newnode=document.createElement("div");
newnode.setAttribute("id","child"+items);
newnode.innerHTML=newitem;
div.insertBefore(newnode,button);
}
function deletethisRow(obj){
var fileElement=document.getElementById("file"+obj);
var buttonElement=document.getElementById("delButton"+obj);
var childDivName="child"+obj;
if (buttonElement) {
var child = document.getElementById(childDivName);
var parent = document.getElementById("items");
parent.removeChild(child);
}
}
</script>
---
但请不要依赖客户端验证。在服务器端检查,或者人们可以禁用客户端检查,甚至上传可执行脚本
<input type="file" name="pic" id="pic" accept=".someext, image/gif, image/jpeg" />
这将检查文件的扩展名…尚未测试代码,但accept属性在某些浏览器中不起作用。。我试过FF(最新版本)它对我不起作用你说得对。似乎他们删除了新版本中的功能。。。不会改变您应该在服务器上检查它的事实。同意!我是javascript新手。。你能告诉我如何实现服务器端验证吗?谷歌上有很多网站。检查,例如,我尝试了这个,但我正在通过javascript动态生成id。因此,如果我的Javascript找不到输入文件标签IDNo.7的值,即未创建的id=“file7”,那么整个代码将失败。。。。当我在firefox中调试时,我注意到。。在“输入文件”字段上悬停时,它没有显示id。它只显示“input”,而应该显示“input#file3”或“input#file4”等。如果未创建元素,则document.getElementById('elementNotCreated')将返回null。您可以检查NOTNULL,然后执行脚本的其余部分。您还可以拥有一个全局变量,并在验证函数中创建和使用该变量时添加文件名。Nope。。getElementById('elementNotCreated')将使整个脚本失败。它不会被执行。。
function Checkfilesextension()
{
var fileToupload = document.getElementById('elementId');
var fileName = fileToupload .value;
var ext = fileName.substring(fileName.lastIndexOf('.') + 1);
ext.toLowerCase
if(ext =="GIF" || other extension) // add other extensions
{
return true;
}
else
{
alert("Upload only the allowed files");
return false;
}
}