文件上传

配置文件:

package com.jason.demo.config;
import javax.servlet.MultipartConfigElement;
import org.springframework.boot.web.servlet.MultipartConfigFactory;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

@Configuration
public class MultipartConfig {
 	@Bean
 	public MultipartConfigElement multipartConfigElement() {
  		MultipartConfigFactory configFactory = new MultipartConfigFactory();
  		// 配置单个文件的大小
  		configFactory.setMaxFileSize("100KB");
  		configFactory.setMaxRequestSize("2MB");
  		// 设置文件上传的路径
  		configFactory.setLocation("/");
  		return configFactory.createMultipartConfig();
 	}
}

控制器:

package com.jason.demo.controller;
import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.Iterator;
import java.util.List;
import java.util.Objects;
import javax.servlet.http.HttpServletRequest;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.multipart.MultipartFile;
import org.springframework.web.multipart.MultipartHttpServletRequest;


@RestController
public class FileUploadController {
 @PostMapping("/upload")
	 public String file(@RequestParam("file") MultipartFile file) throws IOException {
	  File newFile = new File(file.getOriginalFilename());
	  String substring = file.getOriginalFilename().substring(file.getOriginalFilename().lastIndexOf("."));
	  if (!(Objects.equals(substring, "jpg") || Objects.equals(substring, "png"))) {
	   return "文件格式不对,只能接受jpg、png格式,请重新上传";
	  }
	  BufferedOutputStream outputStream = new BufferedOutputStream(new FileOutputStream(newFile));
	  outputStream.write(file.getBytes());
	  outputStream.flush();
	  outputStream.close();
	  return "file upload success";
 }
 @PostMapping("/uploads")
 public String uploadFiles(HttpServletRequest request) {
	  List<MultipartFile> files = ((MultipartHttpServletRequest)request).getFiles("file");
	  Iterator<MultipartFile> iterator = files.iterator();
	  while (iterator.hasNext()) {
	   MultipartFile file = iterator.next();
	   File newFile = new File(file.getOriginalFilename());
	   BufferedOutputStream outputStream = null;
	   try {
	    outputStream = new BufferedOutputStream(new FileOutputStream(newFile));
	    outputStream.write(file.getBytes());
	    outputStream.flush();
	   } catch (FileNotFoundException e) {
	    e.printStackTrace();
	    return "file upload error";
	   } catch (IOException e) {
	    e.printStackTrace();
	    return "file upload error";
   } finally {
    try {
     outputStream.close();
    } catch (IOException e) {
     e.printStackTrace();
    }
   }
  }
  return "file upload success";
 }

}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值