spring boot springmvc上传进度条

本文展示了如何在Spring Boot应用中实现文件上传进度条功能。通过自定义MultipartResolver并添加ProgressListener,实现了在上传过程中监听并更新文件进度。提供了完整的代码示例,包括Controller、配置类和监听器,支持XMLHttpRequest上传文件时的进度显示。
摘要由CSDN通过智能技术生成

网上很多人对于这个点点太令色,所以我把代码都发上来



直接上源码:

package com.gwtjs.icustom.attachments;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.autoconfigure.web.MultipartAutoConfiguration;
import org.springframework.boot.web.servlet.ServletComponentScan;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.multipart.MultipartResolver;

import com.gwtjs.icustom.attachments.resolver.CustomMultipartResolver;

@EnableAutoConfiguration(exclude = {MultipartAutoConfiguration.class})

@Configuration
@ComponentScan(basePackages = {"com.gwtjs.icustom.attachments"})
@ServletComponentScan(basePackages = {"com.gwtjs.icustom.attachments"})
@SpringBootApplication
public class UploadfileTestApplication {

    public static void main(String[] args) {
        SpringApplication.run(UploadfileTestApplication.class, args);
    }
    
    /*
     * 将 multipartResolver 指向我们刚刚创建好的继承 CommonsMultipartResolver 类的自定义文件上传处理类
     */
    @Bean(name = "multipartResolver")
    public MultipartResolver multipartResolver() {
        CustomMultipartResolver customMultipartResolver = new CustomMultipartResolver();
        return customMultipartResolver;
    }
    
}

package com.gwtjs.icustom.attachments.controller;

import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileOutputStream;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import javax.servlet.http.HttpServletRequest;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.multipart.MultipartFile;
import org.springframework.web.multipart.MultipartHttpServletRequest;
import org.springframework.web.servlet.ModelAndView;

@Controller
@RequestMapping("/attachments")
public class UploadController {

    @RequestMapping(value = "/showUpload", method = RequestMethod.GET)
    public ModelAndView showUpload() {
        return new ModelAndView("/UploadProgressDemo");
    }

    @RequestMapping("/upload")
    @ResponseBody
    public void uploadFile(MultipartFile file) {
        System.out.println(file.getOriginalFilename());
    }
    
    @RequestMapping("/uploads")
    @ResponseBody
    public Map<String,Object> uploadFiles(HttpServletRequest request) {
        Map<String,Object> result = new HashMap<String,Object>();
        List<MultipartFile> files2 = ((MultipartHttpServletRequest) request).getFiles("file");
        BufferedOutputStream stream = null;
        String uploadPath = "upload/zip/";
        result.put("fileLength", files2.size());
        int i = 0;
        f

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值