博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
springMVC多图片压缩上传的实现
阅读量:6498 次
发布时间:2019-06-24

本文共 3387 字,大约阅读时间需要 11 分钟。

首先需要在配置文件中添加配置:

UTF-8
32505856
4096

前台代码:

        

后台压缩工具类代码:

public static void photoupload(xxx x, @RequestParam("file") CommonsMultipartFile files[],ResultJson rj){        /******************************图片上传start**********************************/        InputStream input = null;          ByteArrayOutputStream bos = null;                  // 获得项目的路径        //ServletContext sc = request.getSession().getServletContext();                // 上传的文件要保存到的路径        String path = ("E:/x/"+x.getxRealname()+"/");                File file = new File(path);                if (!file.exists()) file.mkdirs();        for (int i = 0; i < files.length; i++) {            try {                if (!files[i].isEmpty()) {                    // 获得原始文件名                    String fileName = files[i].getOriginalFilename();                                        System.out.println(i+"原始文件名:" + fileName);                        bos = new ByteArrayOutputStream();                                          input = files[i].getInputStream();                                         Image image = ImageIO.read(input);                      //  图片压缩                      BufferedImage tag = new BufferedImage(239,127, BufferedImage.TYPE_INT_RGB);                            tag.getGraphics().drawImage(image.getScaledInstance(239,127,Image.SCALE_SMOOTH),0,0,null);                        if (files[i].getOriginalFilename().endsWith(".jpg")) {                          ImageIO.write(tag, "jpg", bos);                      } else if (files[i].getOriginalFilename().endsWith(".png")) {                          ImageIO.write(tag, "png", bos);                      } else {                          rj.setMsg("上传图片格式错误");                          rj.setObj("");                          rj.setSuccess(false);                    }                                          byte[] bytes = bos.toByteArray();  // 新文件名                    String newFileName = UUID.randomUUID() + fileName;                        FileOutputStream fos = new FileOutputStream(path + newFileName);                    fos.write(bytes);                    input.close();                    fos.close();                                        System.out.println("上传图片到:" + path + newFileName);                    if(i==0){                        x.setXPath(path + newFileName);                    }else{                        x.setYPath(path + newFileName);                    }                }            } catch (FileNotFoundException e) {                // TODO Auto-generated catch block                e.printStackTrace();            } catch (IOException e) {                // TODO Auto-generated catch block                e.printStackTrace();            }        }        /*******************************图片上传end**************************************/    }

逻辑如上,自己可修改相关参数实现,如上即可实现图片压缩上传!

 

转载于:https://www.cnblogs.com/YLQBL/p/8269093.html

你可能感兴趣的文章
惠普服务器
查看>>
Linux学习笔记—— 权限及权限管理
查看>>
Didn't find class "net.oschina.app.AppContext" on
查看>>
JavaDate类
查看>>
linux源码编译安装nginx
查看>>
路由器配置实践 教你如何在Linux中三台主机两个网段互相通信
查看>>
手机客户端和web端开发的异同
查看>>
linux下tar.gz、tar、bz2、zip等解压缩、压缩命令小结
查看>>
shell脚本初级教学(从基本脚本开始学起)
查看>>
liunx复制备份命令,copy命令,liunx命令
查看>>
postfix邮箱服务
查看>>
raid磁盘阵列
查看>>
Confluence 6 数据库表-系统信息(System information)
查看>>
C++之typedef 小记
查看>>
第24课 《前端之路,以不变应万变》
查看>>
unity3d做简单小游戏可以吗?
查看>>
Java String.split()用法小结
查看>>
day20 文件上传&下载
查看>>
“5G杀手级应用”Cloud VR 华为如何打响5G第一枪
查看>>
RubyGems 库发现了后门版本的网站开发工具 bootstrap-sass
查看>>