java上传png_java图片上传

1 /***2 * 上传证明材料3 *@paramfiles4 *@paramrequest5 *@return

6 */

7 @RequestMapping(value = "/bitchUploadFile", method ={RequestMethod.POST, RequestMethod.GET})8 @ResponseBody9 public ResponseResult bitchUploadFile(@RequestParam(value = "files", required = false) MultipartFile[] files, HttpServletRequest request) {10 log.info("进入上传证件方法。。。");11 ResponseResult res = newResponseResult();12 byte[] data = null;13 List urls = new ArrayList<>();14 if (null != files && files.length > 0) {15 for(MultipartFile file : files) {16 try{17 //判断图片大小是否大于1M

18 if (file == null || file.isEmpty() || file.getSize() >UPLOAD_FILE_SIZE) {19 return ResponseResult.FAIL("上传文件为空或者超过规定的大小");20 }21 String[] suffixNamesNotDel = {"jpg", "jpeg", "png", "JPG", "JPEG", "PNG"};22 String[] suffixNames = {".jpg", ".jpeg", ".png", ".JPG", ".JPEG", ".PNG"};23 List suffixNamesNotDelList =Arrays.asList(suffixNamesNotDel);24 List suffixNamesList =Arrays.asList(suffixNames);25 //获取图片的文件名

26 String fileName =file.getOriginalFilename();27 int dotIndex = fileName.lastIndexOf(".");28 if (dotIndex < 0) {29 dotIndex =fileName.length();30 }31 //通过判断后缀判断

32 String suffixName =fileName.substring(dotIndex);33 //根据文件头名判断文件实际类型

34 boolean su =suffixNamesList.contains(suffixName);35 //获取图片的扩展名

36 String extensionName = fileName.substring(fileName.lastIndexOf(".") + 1);37 if(su) {38 String uploadUrl = "";39 //上传文件返回服务器存储路径(公用方法)

40 String db = "demo";41 uploadUrl =saveFile(extensionName, db, file);42 //使用base64编码返回前端

43 InputStream in = newFileInputStream(uploadUrl);44 data = new byte[in.available()];45 in.read(data);46 in.close();47 //对字节数组进行base64编码

48 BASE64Encoder encoder = newBASE64Encoder();49 String strBase64 ="data:image/jpeg;base64,"+encoder.encode(data);50 urls.add(strBase64);51 res =ResponseResult.SUCCESS(urls);52 } else{53 return ResponseResult.FAIL("请上传格式为jpg和png的图片文件");54 }55 } catch(Exception e) {56 log.error("上传图片失败" +e);57 return ResponseResult.FAIL("上传图片失败");58 }59 }60 }61 returnres;62 }63

64

65 /**

66 *@paramextensionName 原文件扩展名67 *@paramdb Business differentiation区分不同业务,避免上传文件名相同68 *@paramfiledata 上传的文件数据69 * @Description 文件上传到配置文件 common.properties中的image.storage.root.path路径上70 */

71 publicString saveFile(String extensionName, String db, MultipartFile filedata) {72 //新的图片文件名 = 获取时间戳+"."图片扩展名

73 String newFileName = db + String.valueOf(System.currentTimeMillis()) + "." +extensionName;74 String saveFilePath = "";75 String preImgUrl = "";76 FileOutputStream out = null;77 try{78 //根据配置文件获取服务器图片存放路径79 //这里封装了读取配置文件的方法 配置文件中有图片的存放地址和获取地址80 //根据配置文件获取图片上传路径

81 saveFilePath = "D:/aWangzhaung/tools";82 preImgUrl = "D:/aWangzhaung/tools";83 /*构建文件目录*/

84 File fileDir = newFile(saveFilePath);85 if (!fileDir.exists()) {86 fileDir.mkdirs();87 }88 out = new FileOutputStream(saveFilePath +File.separator89 +newFileName);90 //写入文件

91 out.write(filedata.getBytes());92 out.flush();93 } catch(Exception e) {94 log.error("上传图片失败" +e);95 return "";96 } finally{97 if (out != null) {98 try{99 out.close();100 } catch(IOException e) {101 e.printStackTrace();102 }103 }104 }105 return preImgUrl + "/" +newFileName;106 }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值