揭开Java上传下载功能的神秘面纱
**
基于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上传下载功能的神秘面纱相关推荐
- java歌曲上传下载功能实现,Java上传下载功能的实现详解
上传下载是很简单的功能,但是每次用的时候还是要查,这里整理一下 前台: 提交 主要注意: enctype="multipart/form-data" method="po ...
- java文件流 m.jb51.net_FasfDFS整合Java实现文件上传下载功能实例详解
今天使用Java代码实现文件的上传和下载.对此作者提供了Java API支持,下载fastdfs-client-java将源码添加到项目中.或者在Maven项目pom.xml文件中添加依赖 org.c ...
- JavaWeb实现文件上传下载功能实例解析
转:http://www.cnblogs.com/xdp-gacl/p/4200090.html JavaWeb实现文件上传下载功能实例解析 在Web应用系统开发中,文件上传和下载功能是非常常用的功能 ...
- 项目_功能模块_基于Spring Boot的文件上传下载功能的设计与实现
文章目录 基于Spring Boot的文件上传下载功能模块的设计与实现 1.前言 2.技术栈 3.关键源码 4.实现效果 4.1.登录 4.2.文件列表 4.3.上传文件测试 4.3.1.测试图片 4 ...
- SpringBoot2.x集成mongoDB4.0实现音频文件的上传下载功能
最近项目要用到文件上传下载功能,但是这些音频文件都很大,放到关系型数据库就不太好了(其实是太不好了),占内存不说还慢的要死,所以考虑使用分布式文件系统或者非关系型数据库来实现.由于分布式文件系统没有用 ...
- Spring Boot项目集成AWS SDK连接到AWS S3,实现上传下载功能
本文主要描写在Spring Boot项目里集成AWS SDK连接到AWS S3,实现上传下载功能的具体代码和注意事项.如有不足和错误之处,欢迎指正. AWS S3相关介绍 AWS S3(官网): ht ...
- 教你如何实现c#文件上传下载功能
简单介绍一下c#文件上传下载功能实现. NuGet 安装SqlSugar Model文件下新建 DbContext 类 public class DbContext {public DbContext ...
- java上传文件功能_Java MemoryMapped文件的功能
java上传文件功能 Java MemoryMapped文件的功能 在JDK 1.4中,内存映射文件的一个有趣功能被添加到Java中,该功能允许将任何文件映射到OS内存以进行有效读取. 内存映射文件可 ...
- 文件的上传下载功能的实现(包括进度条)[telerik控件]
文件的上传下载功能的实现(包括进度条) 1.准备工作 首先我们需要Telerik控件,数据库,上传文件文件夹. Telerik控件: RadUpload.RadProgressManager.RadP ...
- java微信上传本地视频教程_java微信开发之上传下载多媒体文件,java上传下载_PHP教程...
java微信开发之上传下载多媒体文件,java上传下载 回复图片.音频.视频消息都是需要media_id的,这个是需要将多媒体文件上传到微信服务器才有的. 将多媒体文件上传到微信服务器,以及从微信服务 ...
最新文章
- EOS 智能合约源代码解读 (14)system合约“exchange_state.hpp”
- PaddleLabel——重新识别失败【Can not recognise the detection box in 文件. Please change manually 】解决方案
- 对反向传播算法(Back-Propagation)的推导与一点理解
- 树莓派是python的应用领域吗_树莓派为什么采用python语言为主要开发语言?
- 怪哉翻译软件测试,翻译怪哉虫文言文
- BUUCTF--练习场--Include 1
- spring cloud + nacos + feign调用
- 微信支付现金红包接口(转)
- JavaScript中eval()函数
- 论文浅尝 | GNN with Generated Parameters for Relation Extraction
- ORACLE中使用递归查询
- 密码学二次剩余困难性问题The Quadratic Residuosity Problem
- 太原锦华计算机学校教学质量怎样,一所好学校有哪些特点?
- python3爬虫-通过requests爬取图虫网
- [LeetCode]: 133: Clone Graph
- Web 端的测试 Selenium 用法必备
- 俄罗斯方块c语言代码及注释,C语言代码实现俄罗斯方块
- 数据库——添加外键约束
- 直线绘制算法-中点画线法
- C3P0jar包下载方法
热门文章
- When Color Constancy Goes Wrong:Correcting Improperly White-Balanced Images阅读札记
- 【上海房价预测】代码实现——利用BP神经网络进行上海二手房价预测
- 使用pip报错:Could not fetch URL https://pypi.org/simple/selenium/: There was a problem confirming the ss
- HC05蓝牙模块配对指南(教程)
- 这有几个常见的电脑故障解决方法,需要的朋友快来
- 你的朋友国庆假期都去了哪里玩?微信大数据告诉你!最远的朋友圈签到竟然来自……
- vscode怎样修改切换自动换行的快捷键
- Android开发之WebDav
- Linux服务器管理记录
- 疑似集体出走,支付宝蚂蚁庄园小鸡不见了