package com.example.demo.controller;
import org.apache.commons.io.FileUtils;
import org.slf4j.LoggerFactory;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import javax.servlet.http.HttpServletRequest;
import java.io.BufferedOutputStream;
import java.io.IOException;
@RequestMapping("/api/picture")
public class PicUploadController {
private static final Logger logger = LoggerFactory.getLogger(PicUploadController.class);
@RequestMapping(value = "/batch/upload", method = RequestMethod.POST)
public String getOrderDtl(@RequestParam(value = "file") MultipartFile files[], HttpServletRequest request) {
logger.info("图片批量上传,files[]=",files);
// String uploadPath = request.getSession().getServletContext().getRealPath("/") + "/upload";
String uploadPath = "C:\\test\\upload";
File uploadDirectory = new File(uploadPath);
if (uploadDirectory.exists()) {
if (!uploadDirectory.isDirectory()) {
uploadDirectory.delete();
if (files != null && files.length >= 1) {
BufferedOutputStream bw = null;
for (MultipartFile file : files) {
String fileName = file.getOriginalFilename();
if(fileName!=null && !"".equalsIgnoreCase(fileName.trim()) && isImageFile(fileName)) {
File outFile = new File(uploadPath + "/" + UUID.randomUUID().toString()+ getFileType(fileName));
FileUtils.copyInputStreamToFile(file.getInputStream(), outFile);
} catch (IOException e) {
return "upload successful";
private Boolean isImageFile(String fileName) {
String[] img_type = new String[]{".jpg", ".jpeg", ".png", ".gif", ".bmp"};
fileName = fileName.toLowerCase();
for (String type : img_type) {
if (fileName.endsWith(type)) {
private String getFileType(String fileName) {
if (fileName != null && fileName.indexOf(".") >= 0) {
return fileName.substring(fileName.lastIndexOf("."), fileName.length());
spring.servlet.multipart.enabled=true
spring.servlet.multipart.max-file-size=10MB
spring.servlet.multipart.max-request-size=100MB
spring.servlet.multipart.resolve-lazily=false