关于Thumbnails上传图片代码
public String processingPictures(MultipartFile file, HttpServletRequest request) throws Exception { String userId = request.getParameter("userId"); String userName = request.getParameter("userName"); String password = request.getParameter("password"); String accountNumber = userMapper.selectById(userId).getAccountNumber();//唯一账户 String filename, basePath, simpleUUID, photoName, fileNamePath, pictureUrl; String folder = "/usr/local/jz-yz-picture/"; //获取文件名 filename = file.getOriginalFilename(); // //获取协议号 // basePath = request.getScheme() // + "://" // + request.getServerName()//获取IP地址 // + ":" // + request.getServerPort()//获取端口号 // + request.getContextPath();//获取工程路径 String[] split = filename.split("\\."); simpleUUID = IdUtil.simpleUUID()+accountNumber; //加上账号唯一标识 photoName = simpleUUID + "." + split[1]; //存入服务器的头像文件名 fileNamePath = folder + File.separator + photoName; File destFile = new File(fileNamePath); pictureUrl = UploadUtils.getNginxPath() + photoName; //存入服务器和返回给前端的头像图片地址 //判断是否存在, 不存在就创建 if (!destFile.getParentFile().exists()) { destFile.getParentFile().mkdirs(); } File[] files = destFile.getParentFile().listFiles(); //用以判断用户是否已经有头像了,有头像就删掉原来的头像 boolean flag = true; for (File fileName : files) { if (fileName.getName().contains(accountNumber)) { flag = fileName.delete(); } } if (flag) { //压缩图片并保存 Thumbnails.of(file.getInputStream()).scale(0.8).toFile(destFile); userMapper.updateById(new User(Integer.parseInt(userId), null,userName, null,password,pictureUrl, null,null,null,null)); return pictureUrl; } return null; }
如果
报“No suitable ImageReader found for source data”异常处理。
原因是因为图片原来的格式不是jpg或者png格式的,是人为改后缀格式,最后解析失败导致。查阅了相关资料暂时没有解决办法。但是正常的图片都是可以上传到服务器的
浙公网安备 33010602011771号