现在的位置: 首页 > 综合 > 正文

js限制本地上传文件大小(支持ie6,7,8 firefox 谷歌)

2013年03月27日 ⁄ 综合 ⁄ 共 2574字 ⁄ 字号 评论关闭

首先 对于ie 必须使用ActiveXObject 来访问本地文件。 这就需要将浏览器的 安全级别调低。 然后重点就是如何在ie8获取本地路径。

 

  1. <input id="upload_img" type="file" onchange="onUploadImgChange(this)" />    
<input id="upload_img" type="file" onchange="onUploadImgChange(this)" />  

 

 

  1.   fileInput.select();  
  2.   var url = document.selection.createRange().text;  
  3.   $('#imageTest').attr('src',url);  
  4. try{  
  5.    var fso = new ActiveXObject("Scripting.FileSystemObject");     
  6.     }  
  7. catch(e)  
  8. {  
  9.     alert('如果你用的是ie8 请将安全级别调低!');  
  10.     }  
  11.   alert("文件大小为:"+fso.GetFile(url).size);  
			   fileInput.select();
			   var url = document.selection.createRange().text;
			   $('#imageTest').attr('src',url);
				try{
				   var fso = new ActiveXObject("Scripting.FileSystemObject");   
					}
				catch(e)
				{
					alert('如果你用的是ie8 请将安全级别调低!');
					}
			   alert("文件大小为:"+fso.GetFile(url).size);

而对于 firefox 谷歌等新一代的浏览器 直接可以通过fileInput.files 来获取file的对象数组

 

 

  1. if( fileInput.files &&  fileInput.files[0] ){  
  2.  alert(fileInput);  
  3.  alert( fileInput.files[0])  
  4.  alert('你选择的文件大小'+fileInput.files[0].size);  
  5.  var xx=fileInput.files[0];  
  6.  for(var i in xx)  
  7. {  
  8.         alert (xx[i])  
  9. }  
  10. }  
		 if( fileInput.files &&  fileInput.files[0] ){
			 alert(fileInput);
			 alert( fileInput.files[0])
			 alert('你选择的文件大小'+fileInput.files[0].size);
			 var xx=fileInput.files[0];
			 for(var i in xx)
			{
					alert (xx[i])
			}
		 }

下面是一个完成的测试例子。

 

  1. <input id="upload_img" type="file" onchange="onUploadImgChange(this)" />  
  2.   
  3. <script type="text/javascript">  
  4.     function onUploadImgChange(fileInput) {  
  5.         var filePath = fileInput.value;  
  6.         var fileExt = filePath.substring(filePath.lastIndexOf("."))  
  7.                 .toLowerCase();  
  8.   
  9.         if (!checkFileExt(fileExt))  
  10.   
  11.         {  
  12.             alert("您上传的文件不是图片,请重新上传!");  
  13.             return;  
  14.         }  
  15.         if (fileInput.files && fileInput.files[0]) {  
  16.             alert(fileInput);  
  17.             alert(fileInput.files[0])  
  18.             alert('你选择的文件大小' + fileInput.files[0].size);  
  19.             var xx = fileInput.files[0];  
  20.             for ( var i in xx) {  
  21.                 alert(xx[i])  
  22.             }  
  23.         } else {  
  24.             fileInput.select();  
  25.             var url = document.selection.createRange().text;  
  26.             try {  
  27.                 var fso = new ActiveXObject("Scripting.FileSystemObject");  
  28.             } catch (e) {  
  29.                 alert('如果你用的是ie 请将安全级别调低!');  
  30.             }  
  31.             alert("文件大小为:" + fso.GetFile(url).size);  
  32.         }  
  33.     }  
  34.     function checkFileExt(ext)  
  35.   
  36.     {  
  37.         if (!ext.match(/.jpg|.gif|.png|.bmp/i)) {  
  38.             return false;  
  39.         }  
  40.         return true;  
  41.     }  
  42. </script>  

抱歉!评论已关闭.