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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • virsh命令详解_lsattr命令详解

    virsh命令详解_lsattr命令详解virshhelp分组的命令:域管理(虚拟机实例管理)DomainManagement(helpkeyword’domain’):attach-device从一个XML文件附加装置attach-disk附加磁盘设备attach-interface获得网络界面autostart自动开始一个域

    2022年8月12日
  • idea最新激活码2022【2022最新】2022.02.07「建议收藏」

    (idea最新激活码2022)好多小伙伴总是说激活码老是失效,太麻烦,关注/收藏全栈君太难教程,2021永久激活的方法等着你。IntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,下面是详细链接哦~https://javaforall.net/100143.html4KDDGND3CI-eyJsaWNlbnNlSW…

    2022年4月1日
  • 下载verycd的方法下载电驴资源隐藏资源的最新可用方法

    下载verycd的方法下载电驴资源隐藏资源的最新可用方法我也是刚听说,现在电驴也不让下载了,和以前的狗狗一样,资源都屏蔽了,今天无意得到了一个可以下载电驴上的资源的方法,很简单,应该是漏洞,不知道能用多久,但是目前至少可以用。自2012年8月30日之后,verycd上所有资源的ed2k下载链接均被隐藏。没有登录的会员会显示“该资源为版权方声明保护内容,VeryCD不提供其下载”的字样。仅高等级的用户才能正常浏览到资源的e

    2022年8月10日
  • myeclipse 序列号

    myeclipse 序列号

    2021年4月22日
  • mac笔记本卡顿怎么办_电脑卡顿不流畅怎么办

    mac笔记本卡顿怎么办_电脑卡顿不流畅怎么办打开活动监视器,(启动台–其他–活动监测器),可以看到耗CPU,内存的具体应用都有哪些。如果能查到就往这方面去停止运行。一般都是图形的操作特别耗内存,可以关闭adboe的一些配置。我出现问题是安装了PS,他的adobe监听实时更新耗了系统70%内存。……

    2022年9月4日
  • JDK8默认垃圾回收器详解[通俗易懂]

    JDK8默认垃圾回收器详解[通俗易懂]今天面试问道JDK8默认使用的垃圾收集器是什么,然后回来第一时间CMD命令查看了一下:java-XX:+PrintCommandLineFlags-version-XX:InitialHeapSize=266390080-XX:MaxHeapSize=4262241280-XX:+PrintCommandLineFlags-XX:+UseCompressedClassPointe…

    2022年10月11日

发表回复

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

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