使用FileUpload控件时如何用js在客户端判断上传文件的大小?

时间:2022-04-13 03:59:39
使用FileUpload控件时如何用js在客户端判断上传文件的大小?

8 个解决方案

#1


如果你是图片文件的话,可以直接使用JS判断,
  如果是别的文件类型的话,好像JS判断有难度... 我也正在做这个,我就只将图片文件用JS判断了。别的文件还是到后台去判断。

#2



<HTML>
<HEAD> 
<>
getFileSize (fileName) {
 if (layers) {
  if (navigator.javaEnabled()) {
   var file = new java.io.File(fileName);
    if (location.protocol.toLowerCase() != '''')
     netscape.security.PrivilegeManager.enablePrivilege(''UniversalFileRead'' );
   return file.length(); 
  }else 
   return -1; 
 }else if (all) {
  old = ;
  = (err) {
   if (err.indexOf(''utomation'') != -1) {
    alert(''file access not possible'');
    return true;
   }else 
    return false; 
  };
  var fso = new ActiveXObject(''ing.FileSystemObject'');
  var file = fso.GetFile(fileName);
  = old;
  return file.Size; 
 }
}

</>

</HEAD>

<BODY>
 <FORM NAME="formName"><INPUT TYPE="file" NAME="fileName"><BR>
  <INPUT TYPE="button" VALUE="check file size" ="alert(getFileSize(this.form.fileName.value)+''字节'')">
 </FORM>
</BODY>
</HTML>

#3


这就是一个判断而已,放在你要调用的JS方法里面,执行的代码在下面的控件里面执行的。

      if(document.all.imgx.fileSize>1024*1024)
            {
               
                alert('图片文件超过指定大小(1M),请重新上传附件');
                window.event.returnValue=false;
                return false; 
             }

就是在选择附件之后将这个文件传给img 在到JS方法里面判断

<asp:FileUpload ID="FileUpload2" runat="server" Width="353px" onchange="document.all.imgx.src=this.value"/><img src="" id="imgx" style="display:none">

#4


FSO


<script> 
  function  getFileSize  (fileName)  {  
   
if  (document.all)  {  
window.oldOnError  =  window.onerror;          
window.onerror  =  function  (err)  {  
if  (err.indexOf('utomation')  !=  -1)  {  
alert('没有访问文件的权限');                  
return  true;              
}            
else    
return  false;          
};  
       var  fso  =  new  ActiveXObject('Scripting.FileSystemObject');  
       var  file  =  fso.GetFile(fileName);          
window.onerror  =  window.oldOnError;  
       return  file.Size;    }}  


  </script>   
  


 <INPUT  TYPE="file"  NAME="fileName"> 
<INPUT  TYPE="button"  VALUE="查看文件字节大小"  ONCLICK="alert(getFileSize(document.getElementById('fileName').value))">

#5


我的文件不是图片。并且必须在上传到服务器前判断文件大小。超过限制不允许上传的。如果是在服务器判断,那文件都上传上去了还有什么意义?

#6


引用 5 楼 liudongyue1987 的回复:
我的文件不是图片。并且必须在上传到服务器前判断文件大小。超过限制不允许上传的。如果是在服务器判断,那文件都上传上去了还有什么意义?


前台实现不了.用JS在IE6下有效,FF或IE7以上就没效了.
放弃吧.JS判断是没用的.
就算能实现,有恶意的人在浏览器端也能轻松修改JS.

有一些AJAX上传组件或许可以.不过也存在被恶意突破的情况.

还有一些通过flash Actionscript+上传组件的办法,可以在前台判断文件大小.当然也只是防君子不防小人的.

#7


留名,以后肯定用的着

#8


我也看看,最近正头痛这个了。

#1


如果你是图片文件的话,可以直接使用JS判断,
  如果是别的文件类型的话,好像JS判断有难度... 我也正在做这个,我就只将图片文件用JS判断了。别的文件还是到后台去判断。

#2



<HTML>
<HEAD> 
<>
getFileSize (fileName) {
 if (layers) {
  if (navigator.javaEnabled()) {
   var file = new java.io.File(fileName);
    if (location.protocol.toLowerCase() != '''')
     netscape.security.PrivilegeManager.enablePrivilege(''UniversalFileRead'' );
   return file.length(); 
  }else 
   return -1; 
 }else if (all) {
  old = ;
  = (err) {
   if (err.indexOf(''utomation'') != -1) {
    alert(''file access not possible'');
    return true;
   }else 
    return false; 
  };
  var fso = new ActiveXObject(''ing.FileSystemObject'');
  var file = fso.GetFile(fileName);
  = old;
  return file.Size; 
 }
}

</>

</HEAD>

<BODY>
 <FORM NAME="formName"><INPUT TYPE="file" NAME="fileName"><BR>
  <INPUT TYPE="button" VALUE="check file size" ="alert(getFileSize(this.form.fileName.value)+''字节'')">
 </FORM>
</BODY>
</HTML>

#3


这就是一个判断而已,放在你要调用的JS方法里面,执行的代码在下面的控件里面执行的。

      if(document.all.imgx.fileSize>1024*1024)
            {
               
                alert('图片文件超过指定大小(1M),请重新上传附件');
                window.event.returnValue=false;
                return false; 
             }

就是在选择附件之后将这个文件传给img 在到JS方法里面判断

<asp:FileUpload ID="FileUpload2" runat="server" Width="353px" onchange="document.all.imgx.src=this.value"/><img src="" id="imgx" style="display:none">

#4


FSO


<script> 
  function  getFileSize  (fileName)  {  
   
if  (document.all)  {  
window.oldOnError  =  window.onerror;          
window.onerror  =  function  (err)  {  
if  (err.indexOf('utomation')  !=  -1)  {  
alert('没有访问文件的权限');                  
return  true;              
}            
else    
return  false;          
};  
       var  fso  =  new  ActiveXObject('Scripting.FileSystemObject');  
       var  file  =  fso.GetFile(fileName);          
window.onerror  =  window.oldOnError;  
       return  file.Size;    }}  


  </script>   
  


 <INPUT  TYPE="file"  NAME="fileName"> 
<INPUT  TYPE="button"  VALUE="查看文件字节大小"  ONCLICK="alert(getFileSize(document.getElementById('fileName').value))">

#5


我的文件不是图片。并且必须在上传到服务器前判断文件大小。超过限制不允许上传的。如果是在服务器判断,那文件都上传上去了还有什么意义?

#6


引用 5 楼 liudongyue1987 的回复:
我的文件不是图片。并且必须在上传到服务器前判断文件大小。超过限制不允许上传的。如果是在服务器判断,那文件都上传上去了还有什么意义?


前台实现不了.用JS在IE6下有效,FF或IE7以上就没效了.
放弃吧.JS判断是没用的.
就算能实现,有恶意的人在浏览器端也能轻松修改JS.

有一些AJAX上传组件或许可以.不过也存在被恶意突破的情况.

还有一些通过flash Actionscript+上传组件的办法,可以在前台判断文件大小.当然也只是防君子不防小人的.

#7


留名,以后肯定用的着

#8


我也看看,最近正头痛这个了。