利用 JS在客户端判断文件上传的真实格式(获取文件后缀的朋友就不要回答了) 急!

利用 JS在客户端判断文件上传的真实格式(获取文件后缀的朋友就不要回答了) 急!,第1张

你在谷歌浏览器打开控制台,输入document.getElementById('file').files,这个方法也可以用来获取文件的大小,如果file有选择文件的话会显示filelist会有type出现,不过我试了一下,效果跟获取文件后缀名差不多,而且前端验证很容易欺骗,安全性考虑都会在后端重新验证。

下面是一个完整的HTML文档,你可以复制后进行直接测试。

代码中有必要的注释:

<!doctype html>

<html>

<head>

<meta charset="utf-8">

<title>文件类定义</title>

</head>

<body>

<form method=post name=upform action="" enctype="multipart/form-data">

<div id="file" style="margin-top:60pxwidth:autohegiht:auto"></div>

<a href="javascript:void(0)" onclick="addUpload()">添加附件</a>

<span class="required"> 语音文件</span>

<input name="btn_up" class="cmd"  type="button" id="btn_up" value="上传"  style="cursor:hand" onclick="ajaxFileUpload(this.form, this.form.txt1.value)">

</form>

<script type="text/javascript">

var count= 0   

var maxfile = 3

//增加元素

function addUpload() { 

if(count >= maxfile) return//限制最多maxfile个文件框

count++

//自增id不同的HTML对象,并附加到容器最后

var newDiv =  "<div id=divUpload" + count +">"

+ "请选择上传的音频,图片,或文字,第"+count+"帧"

+ "<br/>"

//下面的每一个input中,都加入了onchange事件,用以在选择完新文件后对其进行判断

//同时第二参数用以限定本输入框中的文件类型

+ "文本:<input name=txt"+count+" type=file  maxlength=30 style=width:60% onchange='confirmType(this, \"txt\")' /><br/>"

+ "图片:<input name=img"+count+" type=file  maxlength=30 style=width:60% onchange='confirmType(this, \"img\")' /><br/>"

+ "MP3 :<input name=voice"+count+" type=file  maxlength=30 style=width:60% onchange='confirmType(this, \"voice\")' /><br/>"

+ "<input type=button value=删除 onclick=delUpload('divUpload" + count + "') />"

+ "</div>"

document.getElementById("file").insertAdjacentHTML("beforeEnd", newDiv)

}

function confirmType(th, ty){

var v = th.value

if(ty == 'txt' && /\.txt$/i.test(v)){ //如果是文本框

th.style.color = '#090' //正确为绿色显示

}else if(ty == 'img' && /\.jpg$/i.test(v)){ //如果是图片框

th.style.color = '#090' //正确为绿色显示

}else if(ty == 'voice' && /\.mp3$/i.test(v)){ //如果是MP3框

th.style.color = '#090' //正确为绿色显示

}else{

th.style.color = '#F00' //错误为红色显示

alert('您所选择的文件类型不正确')

}

}

</script>

</body>

</html>


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/11974607.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-20
下一篇 2023-05-20

发表评论

登录后才能评论

评论列表(0条)

保存