java接收图片的两种方法
Posted 小飞猪咯咯
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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; }
以上是关于java接收图片的两种方法的主要内容,如果未能解决你的问题,请参考以下文章