Spring boot实现上传文件至本地或服务器

这篇具有很好参考价值的文章主要介绍了Spring boot实现上传文件至本地或服务器。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

大家好 我是程序猿小张

图片文件上传是项目中必不可少的一个功能,上传的地址也当然是优先选择第三方的对象存储,例如七牛云、阿里云等等,但是当中的话只有七牛云是有一个免费额度的,其他都是要收钱的。所以就想着,哎,这个能不能上传到本地呢?答案是肯定可以的,只要你本地存储空间足够大,不多说上教程。

一、applicationp配置

#上传文件大小 默认是10MB
spring:
  servlet:
    multipart:
      max-file-size: 50MB
      max-request-size: 50MB
#本地上传地址,我这个是服务器地址,如是本地改成对应磁盘地址即可
file:
  upload-folder: /usr/local/blog/file/

二、controller层

@RequestMapping(value = "/upload",method = RequestMethod.POST)
    public ApiResult upload(MultipartFile multipartFile){
        return uploadUtil.upload(multipartFile);
    }

三、uploadUtil工具类

public ApiResult upload(MultipartFile file) {
	log.info("文件上传开始,时间 {}",DateUtils.getNowDate());
	if (file.getSize() > 1024 * 1024 * 10) {
  	     return ApiResult.fail("文件大小不能大于10M");
	}
	//获取文件后缀
	String suffix = file.getOriginalFilename().substring(file.getOriginalFil			 
        ename().lastIndexOf(".") + 1, file.getOriginalFilename().length());
        if (!"jpg,jpeg,gif,png".toUpperCase().contains(suffix.toUpperCase())) {
             return ApiResult.fail("请选择jpg,jpeg,gif,png格式的图片");
	}
 	String savePath = UPLOAD_FOLDER;
  	File savePathFile = new File(savePath);
 	if (!savePathFile.exists()) {
  	   //若不存在该目录,则创建目录
    	  savePathFile.mkdir();
 	}
 	 //通过UUID生成唯一文件名
  	String filename = UUIDUtil.getUuid() + "." + suffix;
  	try {
       	      //将文件保存指定目录
      	     file.transferTo(new File(savePath + filename));
   	} catch (Exception e) {
     	     e.printStackTrace();
     	     return ApiResult.fail("保存文件异常");
 	 }
	//返回文件名称
        return ApiResult.success(filename);
}

四、配置拦截器MyInterceptorConfig

@Configuration
public class MyInterceptorConfig extends WebMvcConfigurationSupport {

    @Value("${file.upload-folder}")
    private String UPLOAD_FOLDER;

    @Override
    public void addResourceHandlers(ResourceHandlerRegistry registry) {
        registry.addResourceHandler("/img/**").addResourceLocations("file:" + UPLOAD_FOLDER);
    }
}

五、放行img路径地址,如项目中使用到了shiro或Security则需放行路径,以下为Security

@Override
    public void configure(WebSecurity web) throws Exception {
        web.ignoring().antMatchers(HttpMethod.GET,
                "/favicon.ico",
                "/img/**",
                "/**/*.png",
                "/**/*.ttf",
                "/*.html",
                "/**/*.css",
                "/**/*.js",
                "/index/**");
    }

至此整个上传就结束了,上传成功则可以使用地址如http://localhost:8800/img/xxx.jpg 进行访问

Bye文章来源地址https://www.toymoban.com/news/detail-516688.html

到了这里,关于Spring boot实现上传文件至本地或服务器的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 本地上传文件至阿里云服务器的方法

    1.通过阿里云自带的助手传输小文件至阿里云ECS服务器,编码后文件大小不能大于32KB   2.在云服务器中安装wps,可以查看上传的文件 3.远程登录阿里云服务器,在云服务器下载宝塔Windows安装,在云服务器输入宝塔网址:https://www.bt.cn/#

    2024年02月11日
    浏览(48)
  • windows本地上传文件到服务器(scp)

    1.ssh 用户名@ip:远程登录服务器。 2.scp 本地文件路径 用户名@ip:上传路径 :本地文件与服务器进行传递。 3.本地文件夹上传到服务器 4.查看当前文件夹下所有文件的权限 5.修改文件夹权限(777是最高权限) 注意:scp命令只适用于本机终端(比如cmd / powershell),或者是各种编

    2024年02月12日
    浏览(46)
  • mac PyCharm 上传文件到远程服务器+远程服务器下载到本地

    选择SFTP name:test6 输入ssh账号和密码。保存密码和30s心跳。 Local path(本地mac机器):/Users/clevercode/PycharmProjects/test6 Root path(远程服务机器):/home/clevercode/test6 Root path(远程服务机器):/home/clevercode/test6 [2024/1/18, 10:56 AM] Upload file ‘/Users/clevercode/PycharmProjects/test6/f100.py’ t

    2024年01月19日
    浏览(78)
  • vscode远程连接服务器(remote ssh)+上传本地文件到服务器(sftp)

    一、vscode远程连接服务器 1.点击vscode右边工具栏点击拓展,搜索remote ssh并安装 2.安装完成后,左边工具栏会出现一个电脑图标的远程资源管理器,点击后选择SSH TARGETS的设置 3.然后选择第一个..sshconfig 4.向服务器管理员索要服务器的连接信息并修改ssh config文件   5.设置完成

    2024年02月01日
    浏览(42)
  • 利用vscode工具从本地上传文件到服务器中

    首先,在vscode中安装SFTP扩展; 然后去配置sftp的传输信息,在vscode中按快捷键Ctrl+Shift+P或者点击下面图片的位置: 输入SFTP:Config(如下图),点击后会在此项目目录下生成一个sftp.json文件。 然后配置sftp.json文件中的信息就可以了: host:远程服务器的ip; port:远程服务器的端

    2024年04月13日
    浏览(35)
  • 解决Spring Boot 2.7.16 在服务器显示启动成功无法访问问题:从本地到服务器的部署坑

    🌷🍁 博主猫头虎 带您 Go to New World.✨🍁 🦄 博客首页——猫头虎的博客🎐 🐳《面试题大全专栏》 文章图文并茂🦕生动形象🦖简单易学!欢迎大家来踩踩~🌺 🌊 《IDEA开发秘籍专栏》学会IDEA常用操作,工作效率翻倍~💐 🌊 《100天精通Golang(基础入门篇)》学会Golang语言

    2024年02月07日
    浏览(58)
  • SpringBoot如何使用MultipartFile进行文件上传保存到服务器本地

    之前一直都是用的别人封装好的文件上传方法,这次想自己写一个特别简单的,文件上传方法,非常适合新手观看… 首先需要Springboot需要有Web依赖,就是下面这个依赖 依赖导完了,下面就直接是代码,大家看一下 到这里文件上传的解释都在代码里面,下面如果报文件过大的报错还需

    2024年02月13日
    浏览(58)
  • Spring MVC异步上传、跨服务器上传和文件下载

    之前的上传方案,在上传成功后都会跳转页面。而在实际开发中,很多情况下上传后不进行跳转,而是进行页面的局部刷新,比如:上传头像成功后将头像显示在网页中。这时候就需要使用异步文件上传。 编写JSP页面,引入jQuery和jQuery表单上传工具jquery.form.js【该js文件已经

    2024年02月16日
    浏览(40)
  • 如何使用WinSCP公网远程访问本地CentOS服务器编辑上传文件

    ​ Winscp 是一个支持 SSH( Secure SHell)的 可视化 SCP(Secure Copy)文件传输软件,它的主要功能是在本地与远程计算机间安全地复制文件,并且可以直接编辑文件。 ​ 可视化操作就是直接把文件 从本机拖入 ,打开文件 直接双击 即可。 软件特性 支持协议众多:SSH ,FTP、SFTP、FTPS、

    2024年01月23日
    浏览(51)
  • scp命令-远程服务器与本地之间的文件上传与下载操作

    scp命令在linux中,比较方便。下面是例子。 -p -- ssh的端口,不写的话默认就是22。 /Users/zangcc/Desktop/hello.zip -- 本地的桌面文件hello.zip。 root@服务器ip:/root/tools -- 上传到远程服务器的/root/tools下。 通俗的讲:将本地桌面的hello.zip上传到服务器的/root/tools目录。 -p -- ssh的端口,不

    2024年02月13日
    浏览(45)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包