Springboot文件上传_maven上传jar包到远程仓库

Springboot文件上传_maven上传jar包到远程仓库springboot文件上传机制:1.访问路径2. 上传完成后返回访问文件地址3. 我们只需要访问返回的地址就可以访问到图片4. yaml配置文件(localpath是实际存储的地址)5. 添加配置类,进行访问地址和存储地址映射 @Value(“${file.upload.suffixPath}”) private String uploadSuffixPath; @Value(“${file.upload.localPath}”) private Strin

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

springboot文件上传机制:

注意,存储到数据库中的只是路径名
1.访问路径在这里插入图片描述
2. 上传完成后返回访问文件地址
在这里插入图片描述
3. 我们只需要访问返回的地址就可以访问到图片
在这里插入图片描述
4. yaml配置文件(localpath是实际存储的地址)
在这里插入图片描述
5. 添加配置类,进行访问地址和存储地址映射

    @Value("${file.upload.suffixPath}")
    private String uploadSuffixPath;
    @Value("${file.upload.localPath}")
    private String uploadLocalPath;
	@Override
    public void addResourceHandlers(ResourceHandlerRegistry registry){ 
   
        AppFileUtils.uploadSuffixPath = uploadSuffixPath;
        AppFileUtils.uploadLocalPath = uploadLocalPath;
        registry.addResourceHandler(uploadSuffixPath+"/**").addResourceLocations("file:"+uploadLocalPath);
    }
  1. 实际上传文件代码
package com.yglh.utils;

import org.aspectj.util.FileUtil;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Component;
import org.springframework.web.multipart.MultipartFile;

import java.io.File;
import java.io.IOException;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.util.Random;

@Component
public class AppFileUtils { 
   

    private final static Logger logger = LoggerFactory.getLogger(FileUtil.class);

    /** * 文件上传路径前缀 */
    public static String uploadSuffixPath;
    /** * 本地磁盘目录 */
    public static String uploadLocalPath;

    /** * date format yyyyMMdd */
    public static final String PATTERN_yyyyMMdd = "yyyyMMdd";
    /** * date format yyyyMMddHHmmssSSS */
    public static final String PATTERN_yyyyMMddHHmmssSSS = "yyyyMMddHHmmssSSS";


    /** * @Description: 单文件上传到本地磁盘 * @param multipartFile * @return: java.lang.String * @Author: lxt * @Date: 2021/3/29 10:30 */
    public static String uploadFile(MultipartFile multipartFile){ 
   
        if(multipartFile == null){ 
   
            return null;
        }
        //产生文件名称
        String fileName = getUploadFileName(multipartFile.getOriginalFilename());
        //产生文件目录
        String dateDir = format(null,PATTERN_yyyyMMdd);
        File destFileDir = new File(uploadLocalPath + File.separator + dateDir);
        //因为目录每天凌晨更新所以要判断是否存在,如果不存在就创建新的文件
        if(!destFileDir.exists()){ 
   
            destFileDir.mkdirs();
        }
        try { 
   
        	//把上传文件到目的目录中去
            File destFile = new File(destFileDir.getAbsoluteFile()+File.separator+fileName);
            multipartFile.transferTo(destFile);
            logger.info("文件【"+multipartFile.getOriginalFilename()+"】上传成功");
            return uploadSuffixPath + "/" + dateDir+"/"+fileName;
        } catch (IOException e) { 
   
            logger.error("文件上传异常:"+multipartFile.getOriginalFilename(),e);
            return null;
        }
    }


    /** * @Description: 获取上传后的文件相对路径 --数据库存储该路径 * @param fileName * @return: java.lang.String * @Author: lxt * @Date: 2021/3/29 10:30 */
    public static String getUploadFileName(String fileName){ 
   
        return new StringBuilder()
                .append(format(null, PATTERN_yyyyMMddHHmmssSSS))
                .append("_").append(getRandomStrByNum(6))
                .append(getExtension(fileName))
                .toString();
    }

    /** * 格式化时间 * @param localDateTime * @param pattern 格式 * @return */
    public static String format(LocalDateTime localDateTime, String pattern){ 
   
        //默认取当前时间
        localDateTime = localDateTime == null ? LocalDateTime.now() : localDateTime;
        return localDateTime.format(DateTimeFormatter.ofPattern(pattern));
    }

    public static String CHAR_STR = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ";
    /** * @Title: getRandomStrByNum * @Description: 获取不同位数的随机字符串 * @Author: lxt * @param: factor * @return: java.lang.String * @throws: */
    public static String getRandomStrByNum(int factor) { 
   
        StringBuilder sb = new StringBuilder();
        Random random = new Random();
        for (int i = 0; i < factor; i++) { 
   
            sb.append(CHAR_STR.charAt(random.nextInt(36)));
        }
        return sb.toString();
    }
    /** * @Description: 获取扩展名 * @param fileName * @return: java.lang.String * @Author: lxt */
    public static String getExtension(String fileName){ 
   
        return fileName.substring(fileName.lastIndexOf("."));
    }
}

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

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

(0)
上一篇 2022年8月8日 下午2:16
下一篇 2022年8月8日 下午2:16


相关推荐

  • 易语言调用大漠把血蓝内力体力转化为进度条

    易语言调用大漠把血蓝内力体力转化为进度条把游戏角色的体力、血值、内力、经验通过进度条组件动态读取显示出来,并且通过api函数SendMessage来实现进度条颜色的变化,这里我们设置了血,体力,内力,经验的不同颜色,会根据游戏时时变化百分比例,调用大漠的OCR先把数值读出来,然后换算成进度调的百分比。第18课511遇见易语言大漠内力体力判断时时显示易语言源码:.版本2.子程序体力变化.局部变量str,文本型.局部变量a,双精度小数型.局部变量b,双精度小数型.局部变量c,双精度小数型.局.

    2022年7月13日
    21
  • Cursor Rules 最佳实践总结

    Cursor Rules 最佳实践总结

    2026年3月15日
    3
  • 计算机职称考试网络模块试题,计算机职称考试Excel2003模块试题「建议收藏」

    计算机职称考试网络模块试题,计算机职称考试Excel2003模块试题「建议收藏」计算机职称考试Excel2003模块试题下面瑞文网小编为大家整理了计算机职称考试Excel2003模块试题,欢迎大家浏览。1.要求:利用输入同组单元格的方法,在B2、C3、D4中输入456,并确认。答:首先用Ctrl键选中B2、C3、D4单元格,在D4单元格中输入456,然后在用Ctel键加Ehter键。完成2.要求:利用输入同组工作表的方法,在工作簿BOOK4中每张工作表的A1单元格中,输入…

    2022年5月29日
    41
  • 单片机-控制-直流电机-基于L9110S-、L298N、TB6612FNG驱动[通俗易懂]

    直流电机(directcurrentmachine)能将直流电能转换成机械能(直流电动机)或将机械能转换成直流电能(直流发电机)的旋转电机。它是能实现直流电能和机械能互相转换的电机。当它作电动机运行时是直流电动机,将电能转换为机械能;作发电机运行时是直流发电机,将机械能转换为电能。直流电动机将直流电能转换为机械能的转动装置。电动…

    2022年4月13日
    303
  • 超详细的 Python 方法、函数总结

    超详细的 Python 方法、函数总结目录阅读前必读 不看会错过一个亿 一 字符串操作 1 1capitalize 方法 字符串首字母转换为大写 1 2casefold 方法 所有大写字符转换为小写 1 3center 方法 字符串居中填充 1 4count 方法 统计字符串出现次数 1 5encode 方法 编码字符串 1 6decode 方法 解码字符串 1 7endswith 方法 是否以指定子字符串结尾 startswith 方法 1 8find 方法 字符串首次出现的索引位置 rfi

    2026年3月18日
    3
  • 怎么查看linux系统硬盘,查看Linux磁盘空间的八大方法

    怎么查看linux系统硬盘,查看Linux磁盘空间的八大方法我们都知道 Windows 系统可以很轻易的查看磁盘分区的空间还剩多少 而 Linux 系统就没那么简单了 但是还是有很多方法查看 Linux 磁盘空间的大小 可以借助一些工具来查看 一 df 命令 df 是来自于 coreutils 软件包 系统安装时 就自带的 我们通过这个命令可以查看磁盘的使用情况以及文件系统被挂载的位置 举例 root localhostbei df lhFilesys

    2026年3月19日
    3

发表回复

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

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