多文件上传,使用js对文件进行校验,包括文件单个大小,格式,总的文件大小,文件是否为空等

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>


<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <base href="<%=basePath%>">
    
    <title>My JSP 'upload.jsp' starting page</title>
    
    <script type="text/javascript" src="js/jquery-2.1.1.js"></script>
    <script type="text/javascript">
    var num=0;

    var totalSizeArray={};

//添加附件

    function AddAttachments()
        {                  
              document.getElementById('attach').innerText = "继续添加附件";     
              tb = document.getElementById('attAchments');
              newRow = tb.insertRow();
              newRow.insertCell().innerHTML = "<input name='file' size='50' type='file' id=file"+num+">&nbsp;&nbsp;<input type='button' value='删除'           οnclick='delFile(this.parentElement.parentElement.rowIndex)'>&nbsp;&nbsp;&nbsp;&nbsp;<label id=p"+num+"></label>";         
           totalSizeArray[num]=0;
           num ++;

         }

//删除附件类容

         function delFile(index)
         {    
              totalSizeArray[index]=0;
              document.getElementById('attAchments').deleteRow(index);
              tb.rows.length > 0?document.getElementById('attach').innerText = "继续添加附件":document.getElementById('attach').innerText = "添加附件"; 
         }  
         $(document).ready(function(){
          $("#btnSend").click(function(){

            var fileLength=$("input[type='file']").length;

//判断是否有上传的文件

        if(fileLength==0){
      alert("当前没有可上传的文件");
      return false;
      }else{
      for(var i=0;i<document.form1.elements.length-1;i++)

                {

//判断文控件间内容是否为空

                  if(document.form1.elements[i].value=="")
                  {
                      alert("当前表单不能有空项");
                      document.form1.elements[i].focus();
                      return false;
                  }

                }

//判断文件总大小是否大于10M

     
      var totalSize=0;
      for(x in totalSizeArray){
      totalSize=totalSize+totalSizeArray[x];
      }
      if(totalSize>1024*10){
      alert("文件总大小为:"+totalSize/1024+"MB,超过了10MB,请重新选择文件!");
      return false;
      }else{
         $("#form1").submit();
      }
      }
         });
       }); 
       $(document).ready(function () {
            $("#attAchments").delegate("input[type='file']","change",function(){ 
                var filepath = $(this).val();
                var fileId=$(this).attr("id");
                var countNum=fileId.substring(4,fileId.length);
                var count="p"+countNum;
                var extStart = filepath.lastIndexOf(".");

                var ext = filepath.substring(extStart, filepath.length).toUpperCase();

//判断文件类型

                if (ext==".ZIP"||ext==".RAR" ||ext==".TXT") {
                    alert("不能上传后缀名为.txt、.rar、.zip类型的文件!");
var obj = document.getElementById(fileId) ; 
obj.outerHTML=obj.outerHTML;  
                    $("#"+count).text("");
                    return false;
                } else { $("#"+count).text(filepath);}
                var fileSize=0;         
       fileSize=this.files[0].size;     
       var size=fileSize/1024;

       size=Math.round(size);

//判断单个文件是否大于2M

       if(size>1024*2){
        alert("单个文件大小不能超过2M,请重新选择文件!");
        var obj = document.getElementById(fileId) ; 
obj.outerHTML=obj.outerHTML;  
        $("#"+count).text("");
       }else{
        totalSizeArray[countNum]=size;
        size=$("#"+count).text()+"\t\t\t\t"+size;
        $("#"+count).text(size+"KB");
       }
            });
        });
        
    </script>
  <body>
    <form id="form1" name="form1" method="POST" enctype="multipart/form-data" action="uploadServlet">
    <table id="attAchments">
    </table>
    </form>
    <a id="attach" οnclick="AddAttachments();" href="javascript:;" name="attach">添加附件</a>
    <input type="button" id="btnSend" value=" 上传 "/>
  </body>
</html>
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在Java中,文件上传通常使用Spring框架的MultipartFile对象。可以使用MultipartFile来获取文件大小格式,并进行相应的校验。以下是一个示例代码: ```java import org.springframework.web.multipart.MultipartFile; public class FileUploadService { public void uploadFile(MultipartFile file) { // 检查文件大小 long fileSize = file.getSize(); if (fileSize > MAX_FILE_SIZE) { throw new IllegalArgumentException("File size exceeds the maximum limit."); } // 检查文件格式 String fileExtension = getFileExtension(file.getOriginalFilename()); if (!isSupportedFileFormat(fileExtension)) { throw new IllegalArgumentException("Unsupported file format."); } // 执行文件上传操作 // ... } // 获取文件扩展名 private String getFileExtension(String fileName) { int dotIndex = fileName.lastIndexOf("."); if (dotIndex > 0 && dotIndex < fileName.length() - 1) { return fileName.substring(dotIndex + 1).toLowerCase(); } return ""; } // 检查文件格式是否支持 private boolean isSupportedFileFormat(String fileExtension) { String[] supportedFormats = { "jpg", "jpeg", "png", "gif" }; // 支持的文件格式列表 for (String format : supportedFormats) { if (format.equalsIgnoreCase(fileExtension)) { return true; } } return false; } } ``` 在上述示例中,`uploadFile`方法接收一个MultipartFile对象作为参数。通过调用`getSize()`方法可以获取文件大小,然后与预定义的最大文件大小比较进行校验。通过调用`getOriginalFilename()`方法获取文件名,并通过`getFileExtension`方法获取文件扩展名,然后与支持的文件格式列表进行比较,以确定文件格式是否支持。 请注意,示例中的`MAX_FILE_SIZE`和`isSupportedFileFormat`方法是示例中的一些自定义常量和方法,你可以根据实际需求进行调整和扩展。 这只是一个简单的文件上传校验示例,实际应用中可能还需要考虑其他安全性和业务需求。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值