**

基于Web前后分离完成文件的上传和下载功能**

  在日常开发中,有很多小伙伴一定做过文件的上传和下载功能,有很多小伙伴可能在接到这个任务的时候,手足无措,找文章也找不到合适的。
今天呢,鄙人正式的给大家讲讲Java如何对文件进行上传下载功能,这里是前后端分离模式。我只写重点!首先你要引入maven依赖:
<properties><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding><java.version>1.8</java.version><maven.compiler.source>1.8</maven.compiler.source><maven.compiler.target>1.8</maven.compiler.target></properties><!--父级依赖,它用来提供相关的 Maven 默认依赖。使用它之后,常用的springboot包依赖可以省去version 标签--><parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.1.3.RELEASE</version><relativePath ></relativePath></parent><dependencies><!-- Spring Boot Web 依赖 核心 --><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><version>1.16.20</version></dependency></dependencies>

然后在你的Resoure目录下建立application.yml文件中添加配置

server:port: 8080spring:servlet:multipart:enabled: true
#      最大支持文件大小max-file-size: 100MB
#      最大支持请求大小max-request-size: 100MB#文件存储路径,自己改一下目录地址
filepath: D:/file/

文件存储路径可以修改,文件上传的大小限制这里设置的100M

在controller层
在controller文件夹下创建FileController在controller文件夹下创建FileController

因为这里只进行文件上传下载,不进行业务逻辑处理,因此只用在控制层实现即可,定义文件上传、下载的接口。

@RestController
@RequestMapping("/file")
@Slf4j
public class FileController {@Value("${filepath}")private String filepath;/*** 处理文件上传*/@PostMapping(value = "/upload")public String uploading(@RequestParam("file") MultipartFile file) {File targetFile = new File(filepath);if (!targetFile.exists()) {targetFile.mkdirs();}try (FileOutputStream out = new FileOutputStream(filepath + file.getOriginalFilename());){out.write(file.getBytes());} catch (Exception e) {e.printStackTrace();log.error("文件上传失败!");return "uploading failure";}log.info("文件上传成功!");return "uploading success";}@RequestMapping("/download")public void downLoad(HttpServletResponse response) throws UnsupportedEncodingException {String filename="JAVA核心知识点整理.pdf";String filePath = "D:/file" ;File file = new File(filePath + "/" + filename);if(file.exists()){response.setContentType("application/octet-stream");response.setHeader("content-type", "application/octet-stream");response.setHeader("Content-Disposition", "attachment;fileName=" + URLEncoder.encode(filename,"utf8"));byte[] buffer = new byte[1024];//输出流OutputStream os = null;try(FileInputStream fis= new FileInputStream(file);BufferedInputStream bis = new BufferedInputStream(fis);) {os = response.getOutputStream();int i = bis.read(buffer);while(i != -1){os.write(buffer);i = bis.read(buffer);}} catch (Exception e) {e.printStackTrace();}}}
}

前端这块的操作html页面进行测试
在resource下创建static文件夹,在static文件夹下创建file.html
springboot项目中,静态资源默认访问目录就是resource下的static文件夹

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>文件上传</title>
</head>
<body>
<form enctype="multipart/form-data" method="post" action="file/upload"><input type="file" name="file"/><input type="submit" value="上传"/>
</form>
<a href="/file/download">文件下载</a>
</body>
</html>

启动类:
在controller同级的目录下创建启动类FileApplication

@SpringBootApplication
public class FileApplication {public static void main(String[] args) {SpringApplication.run(FileApplication.class, args);}
}

测试:运行启动类,访问localhost:8080/file.html ,进行相关操作。

到这里今天的博客之旅到底结束,感谢大家支持!!!

揭开Java上传下载功能的神秘面纱相关推荐

  1. java歌曲上传下载功能实现,Java上传下载功能的实现详解

    上传下载是很简单的功能,但是每次用的时候还是要查,这里整理一下 前台: 提交 主要注意: enctype="multipart/form-data" method="po ...

  2. java文件流 m.jb51.net_FasfDFS整合Java实现文件上传下载功能实例详解

    今天使用Java代码实现文件的上传和下载.对此作者提供了Java API支持,下载fastdfs-client-java将源码添加到项目中.或者在Maven项目pom.xml文件中添加依赖 org.c ...

  3. JavaWeb实现文件上传下载功能实例解析

    转:http://www.cnblogs.com/xdp-gacl/p/4200090.html JavaWeb实现文件上传下载功能实例解析 在Web应用系统开发中,文件上传和下载功能是非常常用的功能 ...

  4. 项目_功能模块_基于Spring Boot的文件上传下载功能的设计与实现

    文章目录 基于Spring Boot的文件上传下载功能模块的设计与实现 1.前言 2.技术栈 3.关键源码 4.实现效果 4.1.登录 4.2.文件列表 4.3.上传文件测试 4.3.1.测试图片 4 ...

  5. SpringBoot2.x集成mongoDB4.0实现音频文件的上传下载功能

    最近项目要用到文件上传下载功能,但是这些音频文件都很大,放到关系型数据库就不太好了(其实是太不好了),占内存不说还慢的要死,所以考虑使用分布式文件系统或者非关系型数据库来实现.由于分布式文件系统没有用 ...

  6. Spring Boot项目集成AWS SDK连接到AWS S3,实现上传下载功能

    本文主要描写在Spring Boot项目里集成AWS SDK连接到AWS S3,实现上传下载功能的具体代码和注意事项.如有不足和错误之处,欢迎指正. AWS S3相关介绍 AWS S3(官网): ht ...

  7. 教你如何实现c#文件上传下载功能

    简单介绍一下c#文件上传下载功能实现. NuGet 安装SqlSugar Model文件下新建 DbContext 类 public class DbContext {public DbContext ...

  8. java上传文件功能_Java MemoryMapped文件的功能

    java上传文件功能 Java MemoryMapped文件的功能 在JDK 1.4中,内存映射文件的一个有趣功能被添加到Java中,该功能允许将任何文件映射到OS内存以进行有效读取. 内存映射文件可 ...

  9. 文件的上传下载功能的实现(包括进度条)[telerik控件]

    文件的上传下载功能的实现(包括进度条) 1.准备工作 首先我们需要Telerik控件,数据库,上传文件文件夹. Telerik控件: RadUpload.RadProgressManager.RadP ...

  10. java微信上传本地视频教程_java微信开发之上传下载多媒体文件,java上传下载_PHP教程...

    java微信开发之上传下载多媒体文件,java上传下载 回复图片.音频.视频消息都是需要media_id的,这个是需要将多媒体文件上传到微信服务器才有的. 将多媒体文件上传到微信服务器,以及从微信服务 ...

最新文章

  1. EOS 智能合约源代码解读 (14)system合约“exchange_state.hpp”
  2. PaddleLabel——重新识别失败【Can not recognise the detection box in 文件. Please change manually 】解决方案
  3. 对反向传播算法(Back-Propagation)的推导与一点理解
  4. 树莓派是python的应用领域吗_树莓派为什么采用python语言为主要开发语言?
  5. 怪哉翻译软件测试,翻译怪哉虫文言文
  6. BUUCTF--练习场--Include 1
  7. spring cloud + nacos + feign调用
  8. 微信支付现金红包接口(转)
  9. JavaScript中eval()函数
  10. 论文浅尝 | GNN with Generated Parameters for Relation Extraction
  11. ORACLE中使用递归查询
  12. 密码学二次剩余困难性问题The Quadratic Residuosity Problem
  13. 太原锦华计算机学校教学质量怎样,一所好学校有哪些特点?
  14. python3爬虫-通过requests爬取图虫网
  15. [LeetCode]: 133: Clone Graph
  16. Web 端的测试 Selenium 用法必备
  17. 俄罗斯方块c语言代码及注释,C语言代码实现俄罗斯方块
  18. 数据库——添加外键约束
  19. 直线绘制算法-中点画线法
  20. C3P0jar包下载方法

热门文章

  1. When Color Constancy Goes Wrong:Correcting Improperly White-Balanced Images阅读札记
  2. 【上海房价预测】代码实现——利用BP神经网络进行上海二手房价预测
  3. 使用pip报错:Could not fetch URL https://pypi.org/simple/selenium/: There was a problem confirming the ss
  4. HC05蓝牙模块配对指南(教程)
  5. 这有几个常见的电脑故障解决方法,需要的朋友快来
  6. 你的朋友国庆假期都去了哪里玩?微信大数据告诉你!最远的朋友圈签到竟然来自……
  7. vscode怎样修改切换自动换行的快捷键
  8. Android开发之WebDav
  9. Linux服务器管理记录
  10. 疑似集体出走,支付宝蚂蚁庄园小鸡不见了