Java多附件上传

  1. Html
    详解:type:类型,size:最大上传数量,multiple=“true” :支持同时选择多个文件
	<form method="post" enctype="multipart/form-data">
		<input type="file" size="30" name="file" multiple="true" id="enclosure" class="hide" > 上传多文件
		<input id="returnValue" style="display: none" value="">
	</form>
  1. JS
// 定义全局变量 
var allFile = []; // 用于存放附件
var fileList; // 用于取附件数据
// 附件选择方法 
$("#enclosure").on('change',function (e){
    fileList = e.currentTarget.files;
    $.each(fileList, function (index, item){
    	// 校验每个附件的大小
    	if(item.size/1024/1024 > 50){
             tipMessage("上传文件不能大于50M", 2);
             allFile = [];
             //刷新页面
             location.reload();
             return;
          }
            allFile.push(item);
        })
    })
    
// 通过$.ajax方式上传附件
    // 新增页面上传附件
    function uploadFile() {

        var formData1 = new FormData();

        for (let  i = 0; i < allFile.length; i++){
            formData1.append("file",allFile[i]);
        }
        $.ajax({
            type: "POST",
            async: true,
            url: $("#url") + "xxx/xxx/xxx",
            data: formData1,
            processData: false,
            contentType: false,
            success: function (result) {
                if (result.success == true) {
				// 上传成功
				parent.funcationName(a);// 调用父页面方法
				parent.layer.closeAll(); // 关闭子页面
                } else {
                   // 失败
                    return;
                }
            },
            error: function () {
                // 错误
            }
        });
    }
  1. Java
 @RequestMapping(value="/xxx", method = RequestMethod.POST, consumes = "multipart/*")
 public ResponseBean<JSONObject> uploadEnclosure1( MultipartHttpServletRequest request) throws IOException {
 		// 获取文件集
        MultiValueMap<String,MultipartFile> map = request.getMultiFileMap();
        // 获取文件列表
        List<MultipartFile> list = map.get("file");
        // 获取每个单独文件
        for (MultipartFile mFile : list) {
			// 附件名称
			String fileName = mFile.getOriginalFilename();
			// 此处对每个文件进行操作 判断
		}
	List<Map<String,Object>> list = new ArrayList<>();
	// 在服务器中创建session
	HttpSession session = httpServletRequest.getSession();
	session.setAttribute("sessionId", list);
	// 取出session的值
	List<Map<String,Object>> listGet  = (List<Map<String,Object>>) httpServletRequest.getSession().getAttribute("sessionId");
	// 删除session 
	httpServletRequest.getSession().removeAttribute("sessionId");
	// 注意 : 当session不存在时 取出的listget为null 
	if(listGet == null){
		// 此时的session不存在
	}
}
  1. 获取服务器HttpServletRequest
    详解:
    @Autowired 注释,它可以对类成员变量、方法及构造函数进行标注,完成自动装配的工作。
    通过 @Autowired的使用来消除 set ,get方法。
    在spring中可以自动帮你把bean里面引用的对象的setter/getter方法省略,它会自动帮你set/get。
@Autowired
private HttpServletRequest httpServletRequest;
  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值