zl程序教程

您现在的位置是:首页 >  后端

当前栏目

java上传文件图片

2023-09-11 14:19:18 时间
public ResultInfo addImg(MultipartFile multipartFile, Integer dir){
        ThrowException.illegal(multipartFile.isEmpty(),"图片为空");
        ResultInfo resultInfo=new ResultInfo();
        try {
            //1、上传文件原始名称,如 abc.jpg
            String realFileName = multipartFile.getOriginalFilename();
            //2、截取文件后缀名,如.jpg
            String imgSuffix = realFileName.substring(realFileName.lastIndexOf("."));
            //3、生成唯一的文件名,如 abc123456789.jpg
            String newFileName = UUID.randomUUID().toString().replace("-", "") + imgSuffix;
            //4、获取相对路径本地
            String p = new File("upload/").getAbsolutePath();//相对路径
            //4、生成一个最终存放目录,如 E://upload/dir/
            File targetPath = new File(p + "/"+dir + "/");
            if (!targetPath.exists()) targetPath.mkdirs();//不存在,则新建
            //5、指定文件上传以后的服务器的文件名,如 E://upload/dir/abc123456789.jpg
            File targetFileName = new File(targetPath, newFileName);
            //6、文件上传到指定的目录
            multipartFile.transferTo(targetFileName.getAbsoluteFile());
            //7、路由 协议名 主机名 端口
            //String route=request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort();
            String route="https://kszs.xyz:8080/upload/"+dir+"/"+newFileName;
            resultInfo.setResult(route);

        } catch (IOException e) {
            //e.printStackTrace();
            resultInfo.setCode(500);
            resultInfo.setResult(e.toString());
        }finally{
            return resultInfo;
        }
    }