前端js限制上传文件类型及大小(3)

<html> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 

</head> 
<body> 
<form  action="后端接口" enctype="multipart/form-data" method="post" id="attachment_uploads">
  <div class="attachs fl">
       <div class="t_fjfont">附件:</div>
       <div class="upload_btns"><input type="file" name="file"  id="file" οnchange="fileChange(this);" /> </div>
  </div>
  <div class="attachs fl">
       <div class="t_fjfont" style="color:red;font-size:12px;font-weight:bold">文件上限2MB</d
  </div>
  <div class="attachs fl">
       <div class="upload_btns"><input type="file" name="files"  id="file_fujian" οnchange="filefujianChange(this);" /> <input type="hidden" name="rev" class="hide_rev" /></div>
  </div>
  </form>
  <script>
  var isIE = /msie/i.test(navigator.userAgent) && !window.opera; 
  function fileChange(target) {
     var fileSize = 0;         
     if (isIE && !target.files) {     
       var filePath = target.value;     
       var fileSystem = new ActiveXObject("Scripting.FileSystemObject");        
       var file = fileSystem.GetFile (filePath);     
       fileSize = file.Size;    
     } else {    
      fileSize = target.files[0].size;     
      }   
      var size = fileSize / 1024;    
      if(size>2000){  
       alert("附件不能大于2M");
       target.value="";
       return
      }
      var name=target.value;
      var fileName = name.substring(name.lastIndexOf(".")+1).toLowerCase();
      if(fileName !="xls" && fileName !="xlsx"){
          alert("请选择execl格式文件上传!");
          target.value="";
          return
      }
    } 

   function filefujianChange(target) {
       var fileSize = 0;         
       if (isIE && !target.files) {     
         var filePath = target.value;     
         var fileSystem = new ActiveXObject("Scripting.FileSystemObject");        
         var file = fileSystem.GetFile (filePath);     
         fileSize = file.Size;    
       } else {    
        fileSize = target.files[0].size;     
        }   
        var size = fileSize / 1024;    
        if(size>2000){  
         alert("附件不能大于2M");
         target.value="";
         return
        }
        var name=target.value;
        var fileName = name.substring(name.lastIndexOf(".")+1).toLowerCase();
        if(fileName !="jpg" && fileName !="jpeg" && fileName !="pdf" && fileName !="png" && fileName !="dwg" && fileName !="gif" ){
          alert("请选择图片格式文件上传(jpg,png,gif,dwg,pdf,gif等)!");
            target.value="";
            return
        }
      }
  </script>
</body> 
</html> 
另:
<script language=javascript>
function check()
{

photoStr=document.all("Photo.Pho_file").value;
photoEx=photoStr.substring(photoStr.lastIndexOf("."));

if(photoEx==".gif" || photoEx==".jpg"){

form1.submit();
}else{
alert("上传文件只能是[.gif]或[.jpg]的!");
return;
}

}
</script>


  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
文件上传漏洞指的是攻击者可以通过上传恶意文件来执行任意代码或者获取服务器上的敏感信息。在前端检查方面,可以通过以下步骤来检查和防止文件上传漏洞的发生: 1. 检查文件类型:客户端可以通过对文件类型的检查来防止用户上传恶意文件。这可以通过在前端使用JavaScript来实现,或者通过使用一些第三方库来实现。在检查文件类型时,应该使用白名单的方式来限制允许上传的文件类型。 2. 检查文件大小:客户端可以通过对文件大小的检查来限制用户上传过大的文件。这可以通过在前端使用JavaScript来实现。 3. 检查文件名称:客户端可以通过对文件名称的检查来防止用户上传含有恶意脚本的文件。这可以通过在前端使用JavaScript来实现。 但是,这些前端检查都可以被攻击者绕过,因此还需要在服务器端进行进一步的检查和过滤。在服务器端,可以采取以下措施来防止文件上传漏洞的发生: 1. 验证文件类型:在服务器端,应该再次验证文件类型,以确保文件类型符合预期。 2. 验证文件大小:在服务器端,应该再次验证文件大小,以确保文件大小符合预期。 3. 验证文件内容:在服务器端,应该对文件内容进行检查,以确保文件中不包含恶意代码或者其他危险内容。 总之,前端检查只是一种基本的防御措施,但是还需要在服务器端进行更加严格的检查和过滤,以确保文件上传漏洞不会发生。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值