springboot上传文件到文件夹

springboot上传文件到文件夹springboot上传文件至项目当前路径下的文件夹关键代码,之后会分享完整代码到gitee默认上传文件到文件夹/***默认上传文件到文件夹**@paramfolder默认文件夹*@paramfile上传的文件*@return*/privateStringmyfileUp(Stri…

大家好,又见面了,我是你们的朋友全栈君。

springboot上传文件至项目当前路径下的文件夹

关键代码,之后会分享完整代码到gitee

  1. 默认上传文件到文件夹

     /** * 默认上传文件到文件夹 * * @param folder 默认文件夹 * @param file 上传的文件 * @return */
        private String myfileUp(String folder, MultipartFile file, String substring) { 
         
            LocalDate today = LocalDate.now();
            //项目当前路径
            //String filePath = ClassUtils.getDefaultClassLoader().getResource("").getPath() + "static/";
            //String filePath = ClassUtils.getDefaultClassLoader().getResource("").getPath();
            //String filePath = "/usr/local/bison/product-service/static";
            ApplicationHome home = new ApplicationHome(getClass());
            String filePath = home.getSource().getParentFile().toString() + "/static/";
            System.out.println("filePath" + "==================" + filePath);
    
            //按年月保存文件夹
            String saveName = File.separator + today.getYear() + "." + today.getMonthValue() + File.separator;
    
            String fileCode = "";
    
            if (substring.equals("")) { 
         
                fileCode = UUID.randomUUID().toString().trim().replaceAll("-", "");
            } else { 
         
                //文件名称
                fileCode = UUID.randomUUID().toString().trim().replaceAll("-", "") + "_" + substring;
            }
            //文件保存
            String returnName = FileUpload.fileUp(file, filePath + folder + saveName, fileCode);
            saveName = folder + saveName + returnName;
            logger.warn("This file has been uploaded: " + saveName);
            return saveName;
        }
    
  2. 上传文件类

    /** * @version 1.0 * @Author peter * @Date 19-4-3 上午10:41 * @Description //上传文件 * @Param * @return **/
    public class FileUpload { 
         
    
        /** * @param file //文件对象 * @param filePath //上传路径 * @param fileName //文件名 * @return 文件名 */
        public static String fileUp(MultipartFile file, String filePath, String fileName) { 
         
            String extName = ""; // 扩展名格式:
            try { 
         
                if (file.getOriginalFilename().lastIndexOf(".") >= 0) { 
         
                    extName = file.getOriginalFilename().substring(file.getOriginalFilename().lastIndexOf("."));
                }
                copyFile(file.getInputStream(), filePath, fileName + extName).replaceAll("-", "");
            } catch (IOException e) { 
         
                System.out.println(e);
            }
            return fileName + extName;
        }
    
        /** * 写文件到当前目录的upload目录中 * * @param in * @param dir * @param realName * @throws IOException */
        private static String copyFile(InputStream in, String dir, String realName)
                throws IOException { 
         
            //没有就创建新文件夹不然下面文件拷贝会报异常
            File file = new File(dir, realName);
            if (!file.exists()) { 
         
                if (!file.getParentFile().exists()) { 
         
                    file.getParentFile().mkdirs();
                }
                file.createNewFile();
            }
            //org.apache.commons.io 下的FileUtils(很强大可以操作一下)
            //文件拷贝
            FileUtils.copyInputStreamToFile(in, file);
            return realName;
        }
    }
    
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/138681.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Laravel数据库操作的三种方式

    Laravel数据库操作的三种方式

    2021年10月24日
    40
  • BeanCopier_contabo测评

    BeanCopier_contabo测评概述常见或常用的几种Bean属性复制工具Apache.BeanUtilsApache.PropertyUtilSpring.BeanUtilsCglib.BeanCopierMapStructEZMorph使用场景:Dto与Entity转换普通属性复制个别属性过滤属性类型转换数组或集合拷贝性能对比测试在两个简单的Bean之间转换的耗时,执行次数分别为10、10…

    2025年9月14日
    7
  • BN层的作用_bn层加在哪里

    BN层的作用_bn层加在哪里一:BN层李宏毅视频讲解BN(BatchNormalization)层的作用(1)加速收敛(2)控制过拟合,可以少用或不用Dropout和正则(3)降低网络对初始化权重不敏感(4)允许使用较大的学习率 链接:https://www.zhihu.com/question/38102762/answer/85238569来源:知乎1.WhatisBN?顾名思义,batchnormalizat…

    2022年10月10日
    2
  • linux安装svn服务器_linux安装svn客户端

    linux安装svn服务器_linux安装svn客户端1.https://tortoisesvn.net/downloads.html网站下载2.安装的时候如果出现下图的报错打开这个网站https://www.microsoft.com/zh-cn/download/confirmation.aspx?id=49062,会自动帮你下载下载完成后安装即可3.没有特殊需求则默认安装4.出现这个则安装成功MySQL安装…

    2022年8月18日
    6
  • 树莓派怎么安装pycharm_树莓派卸载python2.7

    树莓派怎么安装pycharm_树莓派卸载python2.71、下载pycharm通过VNC界面下载pycharm或者在其他系统下载后推送到树莓派,下载地址pycharm_linux2、将下载的文件复制到/opt文件夹如果在树莓派中直接下载的,会在’/home/pi/下载’文件夹,将下载的文件复制到/opt文件夹sudomvpycharm-community-2020.1.1.tar.gz/opt/pycharm-community-2020.1.1…

    2022年8月27日
    9
  • vue.js和jquery的区别_人和人类的区别是什么

    vue.js和jquery的区别_人和人类的区别是什么jquery:曾经是前端最流行的js库。vue:是一个精简的MVVM,从技术角度讲。vue.js专注于MVVM模型的ViewModel层,它通过双向数据绑定把view和Model层连接起来,通过对数据的操作就可以完成对页面视图的渲染。vue和jQuery区别:①vue和jQuery对比jquery是使用选择器()选取DOM对象,对其进行赋值、取值、事件绑定等操作,其实和原生的HTML的区别只在于可以更方便的选取和操作DOM对象,而数据和界面是在一起的。②比如需要获取label标签的内..

    2022年10月15日
    4

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号