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


相关推荐

  • Mac下用conda安装tensorflow

    Mac下用conda安装tensorflow1.下载并安装Anaconda。2.通过调用以下命令创建名为 tensorflow 的conda环境:$condacreate-ntensorflowpython=3.63.通过发出以下命令激活conda环境:     $sourceactivatetensorflow4.发出以下格式的命令以在conda环境中安装Tensor…

    2022年6月17日
    95
  • 到底什么是“数据中台”,我用大白话给你说清楚

    到底什么是“数据中台”,我用大白话给你说清楚近几年以来,朋友圈、微博、技术论坛全网挂起了中台的热潮,下图是百度统计给出的趋势图。那么中台未来是会成为主流发展方向,还是昙花一现只是一个热门话题呢?我希望先从“中台”这个名词的来源开始,或许会有一个

    2022年6月30日
    26
  • 【Custom Mutator Fuzz】AFL++自定义突变API「建议收藏」

    【Custom Mutator Fuzz】AFL++自定义突变API「建议收藏」前言其实这篇是临时加进来的,因为下一篇文章是libprotobuf+AFL++的内容,所以写的时候需要使用AFL++自定义突变的API,觉得还是需要单独写一篇API的介绍,一共十一个方法,也不是很多,下一篇文章就不再用大篇幅描述API了~编写不易,如果能够帮助到你,希望能够点赞收藏加关注哦Thanks♪(・ω・)ノPS:文章末尾有联系方式,交个朋友吧~本文链接:模糊测试系列往期回顾:【CustomMutatorFuzz】Libprotobuf+LibFuzzerCustomM.

    2022年9月12日
    0
  • 局域网、广域网、互联网「建议收藏」

    局域网、广域网、互联网「建议收藏」局域网局域网的缩写是LAN,localareanetwork,顾名思义,是个本地的网络,只能实现小范围短距离的网络通信。(如下图)我们的家庭网络是典型的局域网。电脑、手机、电视、智能音箱、智能插座都连在无线路由器上,可以互相通信。我们的熟悉的教室网络,也是典型的局域网局域网的通信设备主要是交换机。交换机可以把多个本地的终端连接在一起,帮他们进行数据转发。局域网部署的时候,自己买几台交换机就可以,不需要运营商(电信联通等)提供服务。因特网因特网本质上就是把世界各地的

    2022年10月18日
    0
  • 小议AutoEventWireup属性

    小议AutoEventWireup属性1.在web页面添加一个label和button控件ViewCode<%@PageLanguage=”C#”AutoEventWireup=”false”CodeFile=”AutoEventWireup属性.aspx.cs”Inherits=”_Default”%><!DOCTYPEhtmlPUBLIC”-//W3C//DT…

    2022年5月28日
    30
  • 语音信号处理习题

    语音信号处理习题二、问答题(每题5分,共20分)1、语音信号处理主要研究哪几方面的内容?语音信号处理是研究用数字信号处理技术对语言信号进行处理的一门学科,语音信号处理的理论和研究包括紧密结合的两个方面:一方面,从语言的产生和感知来对其进行研究,这一研究与语言、语言学、认知科学、心理、生理等学科密不可分;另一方面,是将语音作为一种信号来进行处理,包括传统的数字信号处理技术以及一些新的应用于语音信号的处理方法和技术。2、语音识别的研究目标和计算机自动语音识别的任务是什么?语音识别技术,也被称为自动语音

    2022年5月13日
    48

发表回复

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

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