zoukankan      html  css  js  c++  java
  • input标签file获取图片后如何修改名字并保存到指定位置

      /**
         * 疫情期间,下班空余后在idea上开个网吧调剂
         * 温故图片保存底层操作
         * @param file input file控件传递过来的值
         * @param cpId 电脑编号
         * @param config 电脑配置
         * @param location 位置---电脑在客厅还是厨房...
         * @return
         * @throws IOException
         */
        @RequestMapping("addComputer.do")
        public String addComputer(@RequestParam("fileName") MultipartFile file, String cpId, String config, String location) throws IOException {
            //获取上传文件的名字
            String fileName=file.getOriginalFilename();
            //获取上传文件的后缀
            String []suffixArray=fileName.split("\.");
            String suffix=suffixArray[suffixArray.length-1];
            //判断上传文件是否合法
            boolean bl=   imgUtil.isSuffixOk(suffix);
            if(bl){
                //重新生成文件名,以当前时间的毫秒数作为文件名
                String newFileName=System.currentTimeMillis()+"."+suffix;
                //判断文件夹是否存在,如果不存在就创建
                File f=new File(imgUtil.getImgPath()+ "/" + newFileName);
                f.createNewFile();
                //实现上传
                file.transferTo(f);
                Computer c = new Computer();
                int id = Integer.parseInt(cpId);
                c.setCpId(id);
                c.setConfig(config);
                c.setLocation(location);
                c.setImg(newFileName);
                computerService.addComputer(c);
            }else {
                //文件非法
                return "redirect:/page/vue/home.html";
            }
            return "redirect:/page/vue/home.html";
        }
    
    
    
    
    图片工具类
    
    
    /**
     * 图片工具类
     */
    public class ImgUtil {
        /**
         * 有参构造器,地址和后缀可放在配置文件中读取
         * @param imgPath 图片地址 --- 示例 E:/img/net
         * @param imgSuffix 图片后缀 --- 示例 jpg,png,gif
         */
        public ImgUtil(String imgPath, String imgSuffix) {
            this.imgPath = imgPath;
            this.imgSuffix = imgSuffix;
            //组装数组
            suffixArray=   this.imgSuffix.split(",");
    
            this.listImg=new ArrayList<>();
        }
        private  String imgPath; //图片地址
        private  String imgSuffix; //图片后缀
        private  String[] suffixArray;//图片后缀数组
        private List<String> listImg =null;
        /**
         * 上传合法就返回true,否则返回false
         * @param suffix  上传文件的后缀
         * @return
         */
        public boolean isSuffixOk(String suffix){
            boolean bl=false;
            for (String s:suffixArray){
                if(s.equals(suffix)){
                    bl=true;
                    break;
                }
            }
            return  bl;
        }
    
    
    
        public String getImgPath() {
            return imgPath;
        }
    
        public void setImgPath(String imgPath) {
            this.imgPath = imgPath;
        }
    
        public String getImgSuffix() {
            return imgSuffix;
        }
    
        public void setImgSuffix(String imgSuffix) {
            this.imgSuffix = imgSuffix;
        }
    
        public String[] getSuffixArray() {
            return suffixArray;
        }
    
        public void setSuffixArray(String[] suffixArray) {
            this.suffixArray = suffixArray;
        }
    
        public List<String> getListImg() {
            return listImg;
        }
    
        public void setListImg(List<String> listImg) {
            this.listImg = listImg;
        }
    }
  • 相关阅读:
    Python Module_subprocess_子进程(程序调用)
    开机自启动Powershell脚本
    开机自启动Powershell脚本
    Powershell 音乐播放
    Powershell 音乐播放
    Powershell指令集_2
    Zabbix实战-简易教程(1)--总流程
    AWS上获取监控数据(EC2/RDS都支持)
    Grafana最新版本4.3.1安装(后端使用mysql)
    Haproxy实战(3)
  • 原文地址:https://www.cnblogs.com/givre-foudre/p/12343376.html
Copyright © 2011-2022 走看看