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;
    }
}

猜你喜欢

转载自www.cnblogs.com/givre-foudre/p/12343376.html