A-A+
JS中INPUT上传文件类型限制代码
我们利用input上传文件时,希望用户在客户提交之前就提示它只能上传我们规定的文件,如:只能上传gif,jpg等图片文件,当用户点击时就是这类文件就给出提示,在客户端进行验证,代码如下:
- <script Language="JavaScript" Type="text/javascript"> <!--
- function picForm_Validator(myform)
- {
- if(document.all.file1.value=="")
- {
- alert("请选择上传的照片!");
- myform.mfile.focus();
- return false;
- }
- var last=document.all.file1.value.match(/^(.*)(.)(.{1,8})$/)[3]; //检查上传文件格式
- lastlast=last.toUpperCase();
- if(last=="GIF" || last=="JPG"){
- }
- else
- {
- alert("只能上传.GIF 或.JPG 文件,请重新选择!");
- return false;
- }
- return true;
- }
- //-->
- </script>
- <form method="POST" enctype="multipart/form-data" action="xx.action" onsubmit="return picForm_Validator(this)">
- <input name="file1" type="file" class="style4" value="" size="40">
- <input type="submit" value="上传" name="B1" class="s02">
- </form>
例2,代码如下:
- <SCRIPT language="JavaScript">
- <!-- Hide script from older browsers
- extArray = new Array(".gif", ".jpg", ".png");
- function LimitAttach(form, file) {
- allowSubmit = false;
- if (!file) return;
- while (file.indexOf("\") != -1)
- filefile = file.slice(file.indexOf("\") + 1);
- ext = file.slice(file.indexOf(".")).toLowerCase();
- for (var i = 0; i < extArray.length; i++) {
- if (extArray[i] == ext) { allowSubmit = true; break; }
- }
- if (allowSubmit) form.submit();
- else
- alert("Please only upload files that end in types: "
- + (extArray.join(" ")) + "nPlease select a new "
- + "file to upload and submit again.");
- }
- // End -->
- </script>
- <form method="POST" action="newphoto.asp" enctype="multipart/form-data" id=form1 name=form1>
- <input type="file" name="UploadForm" size="30"><BR><BR>
- <input type="button" name="submit" value="Upload Your Photo!" onclick="LimitAttach(this.form, this.form.UploadForm.value)">
- //xiariboke.net
- ———————————————————
- <form onsubmit= "return a(this) ">
- <input type=file name=f>
- <input type=submit>
- </form>
例3,原理简单就是获取上传文件的字符,然后正则表达式判断是不是指定文件,代码如下:
- <input type="file" onchange="checkExt(this)"/>
- <script >
- var checkExt=function(file) {
- if(!(/(?:jpg|gif)$/i.test(file.value))) {
- alert("只允许上传jpg和gif的图片");
- if(window.ActiveXObject) {//for IE
- file.select();//select the file ,and clear selection
- document.selection.clear();
- } else if(window.opera) {//for opera
- file.type="text";file.type="file";
- } else file.value="";//for FF,Chrome,Safari
- } else {
- alert("ok");//or you can do nothing here.
- }//xiariboke.net
- };
- </script>
个人比较喜欢最后一种,他可以判断浏览器类哦,兼容性也相对强不少了.