java接收图片的两种方法
1、使用http接收IO流
2、使用接收formdata表单的方式
controller:
@PostMapping("savePicByIo")
public String savePicByIo(HttpServletRequest request) throws Exception{
System.out.println("图片上传开始");
String fileName = savePictureService.savePicByIo(request);
return fileName;
}
@PostMapping("savePicByFormData")
public String savePicByFormData(@RequestParam("file")MultipartFile file) throws IOException {
String fileName = savePictureService.savePicByFormData(file);
return fileName;
}
service:
public String savePicByIo(HttpServletRequest request) throws IOException { // 图片存储路径 String path = "C:\\image\\factory"; // 判断是否有路径 if (!new File(path).exists()) { new File(path).mkdirs(); } ServletInputStream inputStream = request.getInputStream(); String fileName = UUID.randomUUID().toString().replace("-","") + ".jpg"; File tempFile = new File(path,fileName); if (!tempFile.exists()) { OutputStream os = new FileOutputStream(tempFile); BufferedOutputStream bos = new BufferedOutputStream(os); byte[] buf = new byte[1024]; int length; length = inputStream.read(buf,0,buf.length); while (length != -1) { bos.write(buf, 0 , length); length = inputStream.read(buf); } bos.close(); os.close(); inputStream.close(); } return fileName; } public String savePicByFormData(MultipartFile file) throws IOException { // 图片存储路径 String path = "C:\\image\\factory"; // 判断是否有路径 if (!new File(path).exists()) { new File(path).mkdirs(); } String fileName = UUID.randomUUID().toString().replace("-","") + ".jpg"; File tempFile = new File(path,fileName); if (!tempFile.exists()) { tempFile.createNewFile(); } file.transferTo(tempFile); return fileName; }

浙公网安备 33010602011771号