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;
        }
    }
    
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

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

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • iOS学习笔记——滚动视图(scrollView)

    滚动视图:在根视图中添加UIScrollViewDelegate协议,声明一些对象属性在程序中导入图片,在.m文件中的代码实现:推荐:http://www.cnblogs.com/roucheng

    2021年12月27日
  • 华为服务器安装nas系统,服务器 nas 配置[通俗易懂]

    华为服务器安装nas系统,服务器 nas 配置[通俗易懂]服务器nas配置内容精选换一换为了确保DBService日常数据安全,或者系统管理员需要对DBService进行重大操作(如升级或迁移等)时,需要对DBService数据进行备份,从而保证系统在出现异常或未达到预期结果时可以及时进行数据恢复,将对业务的影响降到最低。系统管理员可以通过FusionInsightManager创建备份DBService任务并备份数据。支表1列出了云备份CBR的…

  • I2C_i2c官网

    I2C_i2c官网I2C读写模块

  • 首次安装MySQL,怎么安装?

    首次安装MySQL,怎么安装?在我的下一篇文章中将会介绍如果安装过MySQL,怎么卸载干净,所以在这篇文章中就不考虑是否安装过MySQL了。首次安装MySQL:之前没有安装过就很好办了,安装过的话参考下一篇文章卸载干净再来看这篇文章来安装。由于MYSQL官方提供了Installer方式安装MYSQL服务以及其他组件,所以Windows下安装,卸载,配置MYSQL变得特别简单。一.准备安装包在这里给…

  • [已发表,转载勘误]Android upx脱壳「建议收藏」

    [已发表,转载勘误]Android upx脱壳「建议收藏」已发在https://www.anquanke.com/post/id/197643不过有部分内容发布之后无法编辑,勘误后如下。Androidupx脱壳写在前面因为我不是pc平台过来的,而是直接从Android入门的,所以upx壳其实一开始并不了解,后来接触到,但是可以直接动态调试或者做个内存快照,对我来说加没加upx其实对我逆向分析影响不大。另一方面upx壳因为开源且其实有很多脱壳的教…

  • 存储过程分页

    存储过程分页

发表回复

您的电子邮箱地址不会被公开。

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