首页>代码>spring boot多文件上传、单文件上传、Excel解析>/springboot-upload/src/main/java/com/simon/springbootupload/controller/MultiUploadController.java
package com.simon.springbootupload.controller;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.multipart.MultipartFile;
import org.springframework.web.multipart.MultipartHttpServletRequest;

import javax.servlet.http.HttpServletRequest;
import java.io.File;
import java.util.List;
import java.util.UUID;

/**
 * @author Simon
 */
@Controller
public class MultiUploadController {
    private static final Logger logger = LoggerFactory.getLogger(MultiUploadController.class);

    @Value("${upload.savepath}")
    private String savepath;

    /**
     * 多个输入框的多文件上传
     *
     * @param request
     * @return
     */
    @ResponseBody
    @PostMapping("/multiUpload")
    public String multiUpload(HttpServletRequest request) {
        List<MultipartFile> files = ((MultipartHttpServletRequest) request).getFiles("file");
        for (int i = 0; i < files.size(); i++) {
            MultipartFile file = files.get(i);
            if (file.isEmpty()) {
                return "上传第" + (i++) + "个文件失败";
            }
            String fileName = file.getOriginalFilename();
            File dest = new File(savepath + UUID.randomUUID() + "-" + fileName);

            try {
                file.transferTo(dest);
                logger.info("第" + (i + 1) + "个文件上传成功");
            } catch (Exception e) {
                logger.error("第" + (i++) + "个文件失败: {}", e.getMessage());
                return "第" + (i++) + "个文件失败";
            }

        }
        return "上传成功";
    }


    /**
     * 一个输入框的多文件上传
     *
     * @param files
     * @return
     */
    @ResponseBody
    @RequestMapping("/singleMultiUpload")
    public String SingleMultiUpload(@RequestParam("file") List<MultipartFile> files) {
        for (int i = 0; i < files.size(); i++) {
            MultipartFile file = files.get(i);
            if (file.isEmpty()) {
                return "上传第" + (i++) + "个文件失败";
            }
            String fileName = file.getOriginalFilename();
            File dest = new File(savepath + UUID.randomUUID() + "-" + fileName);
            try {
                file.transferTo(dest);
                logger.info("第" + (i + 1) + "个文件上传成功");
            } catch (Exception e) {
                logger.error("第" + (i++) + "个文件失败: {}", e.getMessage());
                return "第" + (i++) + "个文件失败";
            }
        }
        return "上传成功";
    }
}
最近下载更多
微信网友_7134912998903808  LV15 2024年9月13日
Seaskye  LV14 2023年11月4日
lyh1989  LV34 2023年10月24日
镜影  LV3 2023年9月14日
做你的景天  LV7 2023年4月12日
lironggang  LV38 2023年3月31日
jk-mack  LV5 2023年2月19日
15908475644  LV4 2023年2月4日
快乐的程序员  LV25 2023年1月25日
最代码官方  LV168 2023年1月15日
最近浏览更多
潜心小白来到  LV3 6月10日
木子520  LV12 5月23日
rexefar 4月16日
暂无贡献等级
ma406805131  LV19 2024年12月18日
短巷拥猫  LV12 2024年12月4日
yimaoermao  LV1 2024年11月28日
3993zby  LV2 2024年11月11日
best2018  LV46 2024年9月13日
微信网友_7134912998903808  LV15 2024年8月29日
赵鑫cdsaljkdfsa  LV11 2024年6月18日
顶部 客服 微信二维码 底部
>扫描二维码关注最代码为好友扫描二维码关注最代码为好友