当前位置: 首页 > news >正文

java实现文件上传到本地

很多时候我们都需要进行文件上传和下载的操作,具体怎么实现网上的代码其实也是挺多的,刚好我的项目中也遇到了文件上传和下载的需求,本篇博文具体讲解上传操作,下篇博文讲解下载操作。

我们具体来想一想要将一个从前端传来的文件进行上传到本地,分几个步骤:

一、获取文件名称

二、通过UUID创建一个新的文件名称

三、创建一个目录

四、将文件存放在刚刚创建好的文件中进行储存

好了,思路有了,那接下来写代码只是时间问题:

 private String uploadFile(MultipartFile file) throws IOException {// 1、获取文件的原始文件名, 通过原始文件名获取文件后缀String filename=file.getOriginalFilename();String filetype=filename.substring(filename.lastIndexOf("."));// 2、使用UUID重新生成文件名,防止文件名称重复造成文件覆盖String newfilename = UUID.randomUUID().toString() + suffix;
//        3、创建一个目录对象File file1=new File("E:/PictureTool/UploadFile/");
//判断当前目录是否存在,不存在则创建if(!file1.exists()){file1.mkdirs();}
//       4、将文件上传到指定目录try{file.transferTo(new File("E:/PictureTool/UploadFile/"+newfilename));System.out.println("文件上传成功");return "E:/PictureTool/UploadFile/"+newfilename;}catch (Exception e){e.printStackTrace();System.out.println("文件上传失败");return "文件上传失败";}}

建议路径可以写成一个常量方便后期管理和防止代码出错,我这里返回的是存放文件的绝对路径,因为我后面的代码需要用到,读者可以根据自己的需求进行修改。

同样的你也可以将存放路径写在yml文件中:

使用的话就直接使用@Value注解引入就可以了:

推荐将代码存放在yml中方便管理。

注:

因为我们点击上传其实是将文件临时保存到我们计算机的一个临时文件夹内,如果我们不将其转存,本次请求结束后,文件也会自动删除。

http://www.lryc.cn/news/311622.html

相关文章:

  • 基于springboot+vue的多媒体素材库的开发与应用系统
  • 《GitHub新手入门指南:从零开始掌握基本用法》
  • K8S存储卷与PV,PVC
  • (科目三)简答题汇总
  • 8、Redis-Jedis、Lettuce和一个Demo
  • (Linux学习六)用户特殊权限类型,suid,chattr,umask
  • Mysql 数据类型的转换之 cast()
  • python重命名指定文件夹下的所有文件
  • 通过多线程并发方式实现服务器
  • 【C语言】指针超级无敌金刚霹雳进阶(但不难,还是基础)
  • 上位机图像处理和嵌入式模块部署(qmacvisual入门)
  • 数据库事务问题整理-MySQL
  • 工具函数模板题(蓝桥杯 C++ 代码 注解)
  • Ansible playbook 简介 使用场景
  • TS总结10、ts的 class 类型(配置项strictPropertyInitialization、非空断言)
  • leetcode 热题 100_找到字符串中所有字母异位词
  • 百度百科数据爬取 python 词条数据获取
  • 为不同文章形式选择不同的WordPress文章模板
  • MySQL存储引擎及索引机制
  • Leetcode算法题
  • 数据结构之七大排序
  • 【MySQL】数据库中常用的函数
  • 嵌入式面试常见问题(四)
  • 用Java在Spring Boot项目中,如何传递来传递一个对象(多个参数??
  • 如何利用ChatGPT搞科研?论文检索、写作、基金润色、数据分析、科研绘图(全球地图、植被图、箱型图、雷达图、玫瑰图、气泡图、森林图等)
  • 一命通关二分搜索
  • 串联所有单词的子串
  • 【会议征稿通知】第四届经济发展与商业文化国际学术会议(ICEDBC2024)
  • 回溯算法套路③排列型回溯+N皇后【基础算法精讲 16】
  • MyBatis-Plus 框架中的自定义元对象处理器