js 判断文件格式

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了js 判断文件格式相关的知识,希望对你有一定的参考价值。

function isValidateFile(obj)
var extend = obj.value.substring(obj.value.lastIndexOf(".")+1);
if(extend=="")
else
if(!(extend=="xls"||extend=="doc"))
alert("请上传后缀名为xls或doc的文件!");
var nf = obj.cloneNode(true);
nf.value='';
obj.parentNode.replaceChild(nf, obj);
return false;


return true;

</script>
<form id="form1" name="form1" enctype="multipart/form-data" method="post" action="">
<label for="filefield"></label>
<input type="file" name="File1" id="File1" />
<input type="button" name="button" id="button" value="检测上传文件类型" onclick="isValidateFile('File1');" />
</form>
求帮忙查看错误

实现如下:
用js对上传的文件大小以及格式进行初步的判断,在服务端再进行一次判断
//判断照片大小
function getPhotoSize(obj)
photoExt=obj.value.substr(obj.value.lastIndexOf(".")).toLowerCase();//获得文件后缀名
if(photoExt!=\'.jpg\')
alert("请上传后缀名为jpg的照片!");
return false;

var fileSize = 0;
var isIE = /msie/i.test(navigator.userAgent) && !window.opera;
if (isIE && !obj.files)
var filePath = obj.value;
var fileSystem = new ActiveXObject("Scripting.FileSystemObject");
var file = fileSystem.GetFile (filePath);
fileSize = file.Size;
else
fileSize = obj.files[0].size;

fileSize=Math.round(fileSize/1024*100)/100; //单位为KB
if(fileSize>=10)
alert("照片最大尺寸为10KB,请重新上传!");
return false;



jsp页面:

<input type="file" id="imgFile" name="upload" style="width:150px;" onchange="getPhotoSize(this)"/>
参考技术A 应该是浏览器不兼容,另找了一个,试一下。如下:
<form id="form1" name="form1" enctype="multipart/form-data" method="post" action="">
<label for="filefield"></label>
<input type="file" name="file" id="file" />
<input type="button" name="button" id="button" value="检测上传文件类型" onclick="checkImg();"/>
</form>
<script>
function checkImg()
var fileWrong = "error" ;
var s =document.forms[0].file.value;
alert(s) ;
var isIE = navigator.userAgent.indexOf("MSIE");
s = s.substr(s.lastIndexOf(".")+1);
s = s.toLowerCase();
if(s!= "jpg" && s!= "png" && s!= "gif" && s!= "bmp")
alert(fileWrong);
return false;

var fileSize = 0;
if (isIE != -1)
// var filePath = s;
// var fileSystem = new ActiveXObject("Scripting.FileSystemObject");
// var file = fileSystem.GetFile (filePath);
// fileSize = file.Size;
var image = new Image();
image.src = s;
fileSize = image.fileSize;
else
fileSize = document.forms[0].pImg.files[0].size;

if(fileSize > 500000)
alert(size500);
return false;

return true;

</script>追问

谢谢 我想请问一下常用的浏览器有哪些

追答

IE,腾迅TT,MAXTHON ,FIREFOX, OPERA ,世界之窗,Netscape,ucfly
等等等等。。。。。

追问

这些内核都是基于IE的 有没有其他的

参考技术B 应该是浏览器不兼容,另找了一个,试一下。如下:
<form id="form1" name="form1" enctype="multipart/form-data" method="post" action="">
<label for="filefield"></label>
<input type="file" name="file" id="file" />
<input type="button" name="button" id="button" value="检测上传文件类型" onclick="checkImg();"/>
</form>
<script>
function checkImg()
var fileWrong = "error" ;
var s =document.forms[0].file.value;
alert(s) ;
var isIE = navigator.userAgent.indexOf("MSIE");
s = s.substr(s.lastIndexOf(".")+1);
s = s.toLowerCase();
if(s!= "jpg" && s!= "png" && s!= "gif" && s!= "bmp")
alert(fileWrong);
return false;

var fileSize = 0;
if (isIE != -1)
// var filePath = s;
// var fileSystem = new ActiveXObject("Scripting.FileSystemObject");
// var file = fileSystem.GetFile (filePath);
// fileSize = file.Size;
var image = new Image();
image.src = s;
fileSize = image.fileSize;
else
fileSize = document.forms[0].pImg.files[0].size;

if(fileSize > 500000)
alert(size500);
return false;

return true;

</script>
参考技术C 传的参数不对
function isValidateFile(obj)
var extend = form1.File1.value.substring(form1.File1.value.lastIndexOf(".") + 1);
alert(extend);
if (extend == "")

else
if (!(extend == "xls" || extend == "doc"))
alert("请上传后缀名为xls或doc的文件!");
return false;


return true;本回答被提问者采纳

判断input[type=file]上传文件格式

input type="file"  
在js中判断文件上传类型  
  
function onSubmit(){  
            var form1 = document.forms[0];          
                var file = document.forms[0].getfile.value;  
                if (file == null||file == ""){  
                     alert("请选择要上传的图片!");  
                     return false;  
                }  
                if (file.lastIndexOf(‘.‘)==-1){    //如果不存在"."    
                    alert("路径不正确!");  
                    return false;  
                }  
                var AllImgExt=".jpg|.jpeg|.gif|.bmp|.png|";  
                var extName = file.substring(file.lastIndexOf(".")).toLowerCase();//(把路径中的所有字母全部转换为小写)          
                if(AllImgExt.indexOf(extName+"|")==-1)          
                {  
                    ErrMsg="该文件类型不允许上传。请上传 "+AllImgExt+" 类型的文件,当前文件类型为"+extName;  
                    alert(ErrMsg);  
                    return false;  
                }  
                document.forms[0].submit();  
         }  

  

  1. input type="file"  
  2. 在js中判断文件上传类型  
  3.   
  4. function onSubmit(){  
  5.             var form1 = document.forms[0];          
  6.                 var file = document.forms[0].getfile.value;  
  7.                 if (file == null||file == ""){  
  8.                      alert("请选择要上传的图片!");  
  9.                      return false;  
  10.                 }  
  11.                 if (file.lastIndexOf(‘.‘)==-1){    //如果不存在"."    
  12.                     alert("路径不正确!");  
  13.                     return false;  
  14.                 }  
  15.                 var AllImgExt=".jpg|.jpeg|.gif|.bmp|.png|";  
  16.                 var extName = file.substring(file.lastIndexOf(".")).toLowerCase();//(把路径中的所有字母全部转换为小写)          
  17.                 if(AllImgExt.indexOf(extName+"|")==-1)          
  18.                 {  
  19.                     ErrMsg="该文件类型不允许上传。请上传 "+AllImgExt+" 类型的文件,当前文件类型为"+extName;  
  20.                     alert(ErrMsg);  
  21.                     return false;  
  22.                 }  
  23.                 document.forms[0].submit();  
  24.          }  

以上是关于js 判断文件格式的主要内容,如果未能解决你的问题,请参考以下文章

js jquery 上传文件格式大小判断简单总结

js 怎么判断图片的真实格式

js,nodejs如何判断文件是啥编码格式

纯js判断文件流格式类型:pdf,doc,docx,xls,xlsx,ppt,pptx一次搞定!

java上传视频除了检查后缀,怎么判断文件格式,前8位来判断.flv格式有的00000018有的464C5601可靠么?求解

JS判断电话/手机的格式是不是正确