java spring接收前端传输的图片(两种方法)

您所在的位置:网站首页 保佑接单的图片 java spring接收前端传输的图片(两种方法)

java spring接收前端传输的图片(两种方法)

2024-07-11 22:30| 来源: 网络整理| 查看: 265

spring接收前端传输的图片 1.以base64格式来传输

以PostMapping的

@RequestBody JSONObject jsonObject

作为参数接收前端传来的base64编码(因为采用get会抛出请求头过长的异常)

String base64Data=jsonObject.getString("base64Data");

接收前端传来的编码

解码主体

//base64格式前头 String dataPrix = ""; //实体部分数据 String data = ""; if(base64Data==null||"".equals(base64Data)){ return "上传失败,上传图片数据为空"; }else { //将字符串分成数组 String [] d = base64Data.split("base64,"); dataPrix = d[0]; data = d[1]; } String suffix = ""; //data:image/jpeg;base64,base64编码的jpeg图片数据 if("data:image/jpeg;".equalsIgnoreCase(dataPrix)){ suffix = ".jpg"; }else if("data:image/x-icon;".equalsIgnoreCase(dataPrix)){ //data:image/x-icon;base64,base64编码的icon图片数据 suffix = ".ico"; }else if("data:image/gif;".equalsIgnoreCase(dataPrix)){ //data:image/gif;base64,base64编码的gif图片数据 suffix = ".gif"; }else if("data:image/png;".equalsIgnoreCase(dataPrix)){ //data:image/png;base64,base64编码的png图片数据 suffix = ".png"; }else { return "上传图片格式不合法"; } String uuid = UUID.randomUUID().toString().replaceAll("-", ""); String tempFileName=uuid+suffix; String imgFilePath = "E:\\if\\try\\"+tempFileName; try { //Base64解码 byte[] base64decodedBytes = Base64.getDecoder().decode(data); OutputStream out = new FileOutputStream(imgFilePath); out.write(base64decodedBytes); out.flush(); out.close(); } catch (Exception e) { System.out.println(e); return "上传图片失败"; }

编码主体

//编码 InputStream inputStream = null; byte[] data = null; try { inputStream = new FileInputStream("E:\\if\\2.jpg"); data = new byte[inputStream.available()]; inputStream.read(data); inputStream.close(); } catch (IOException e) { e.printStackTrace(); } Encoder encoder = Base64.getEncoder(); String base64encodedString = encoder.encodeToString(data); System.out.println(base64encodedString);

删除文件

File delFile = new File(path); System.out.println("File->"+delFile); if(delFile.isFile() && delFile.exists()) { System.out.println("delete"); delFile.delete(); } 2. MultipartFile 保存图片

接口中接收MultipartFile image

@PostMapping("/upload") public Map upload(MultipartFile image) throws IOException

然后保存图片

String imgName = UUID.randomUUID().toString().replace("_", "") + "_" + image.getOriginalFilename().replaceAll(" ", ""); //保存图片 String imgFilePath=你的文件夹路径+imgName; OutputStream out = new FileOutputStream(imgFilePath); out.write(image.getBytes()); out.flush(); out.close();

保存图片的功能可以参考一下我写的Thumbnails图片压缩 每次上传图片到服务器的时候,都会由于图片过大导致加载很长时间,然后使用图片压缩可以稍微减轻一点图片处理的压力

用图片压缩后,不仅节省上传和回显时间,同时也可以减轻一点服务器的压力



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3