springmvc 上传和下载

数据分享|2023年OSM道路数据(全国,分省,分市) 首先这个工作非常有必要的,因为我们正常使用的道路的分类都是基于包括城市快速路、城市主干路、城市次干路这个体系的,大家对于这个分类体系应该更熟悉,但是OSM地图的道路分类又不是完全按这个来的,所以非常有必要重新分类;搞清楚道路类型是我们使用道路数据做很多工作的基础,比如我们在使用道路数据的时候,经常需要预估道路的行车速度,而这个速度一般就是根据道路类型来的,比如高架路的车速肯定就比城市支路快很多!下载分为两种情况,第一种是下载小区域的数据,比如下载一个街区的数据,第二种为下载整个中国范围的。 阅读详情

1、上传—jar包:commons-fileupload、commons-io
1)页面:表单–post、multipart/form-data
2)页面:表单中设置input—file类型
3)解析器—上传解析器—实现解析,将客户端送到服务器端的字符串解析
4)在处理请求的执行单元中添加形参来接收文件和非文件数据

2、实现
1)页面

<form action="upload.action" method="post" enctype="multipart/form-data">
	<p>pid<input type="text" name="pid"></p>
	<p>name<input type="text" name="pname"></p>
	<p>weight<input type="text" name="weight"></p>
	<p>photo<input type="file" name="photo"></p>
	<p><input type="submit" value="提交"></p>
</form>

2)解析器

<!-- 上传解析器 -->
<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
	<property name="defaultEncoding" value="utf-8"></property>
</bean>

3)执行单元

@RequestMapping("/upload.action")
	public String upload(Person person,MultipartFile[] photo) throws IllegalStateException, IOException {
		System.out.println("person里面只有一般数据:"+person);
		
		for(int i = 0;i < photo.length;i++) {
			MultipartFile mf = photo[i];
			//当数组中有上传的内容时,才处理,否则不处理,不然抛出空指针
			if(mf != null) {
				//获取上传文件的名称
				String fileOldName = mf.getOriginalFilename();
				person.setPhotoOldName(fileOldName);
				//重名问题:随机名称
				//判断是否存在路径,其次进行截取;然后截取扩展名;拼合新名称
				//D:\cts第三阶段录屏\day08\1.jpg
//				int i1 = fileOldName.lastIndexOf("\\");
//				if(i1 != -1) {
//					fileOldName = fileOldName.substring(i1 + 1);
//				}
				int i2 = fileOldName.lastIndexOf(".");
				String ext = fileOldName.substring(i2);
				
				String uuid = UUID.randomUUID().toString();
				String fileNewName = uuid + ext;
				person.setPhotoNewName(fileNewName);
				
				
				//获取指定路径
				File file = new File("C:\\Users\\IBM\\Desktop\\imgs",fileNewName);
				
				//实现将上传的文件复制到指定的路径
				mf.transferTo(file);
			}
		}
		return "/main.jsp";
	}

3、上传的时候,可以设置上传文件的最大大小限制

<!-- 上传解析器 -->
	<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
		<!-- 设置上传文件的最大值限制,单位:B -->
		<property name="maxUploadSize" value="10285760"></property>
		<property name="defaultEncoding" value="utf-8"></property>
	</bean>

4、下载
1)展示下载列表,然后点击下载
2)实现下载列表:
执行单元

@RequestMapping("/list.action")
	public String list(Model model) {
		//加入在files中保存着所有的下载文件的名称
		//找到路径---文件所在
		File file = new File("C:\\Users\\IBM\\Desktop\\imgs");
		//获取路径中所有文件的名称---递归
		String[] files = file.list();
		model.addAttribute("files", files);
		return "/downlist.jsp";
	}

页面

<p>下载列表</p>
<c:forEach items="${files }" var="file">
	<p><a href="download.action?fname=${file }">${file }</a></p>
</c:forEach>

下载执行单元

@RequestMapping("/download.action")
	//原生态的方式
	public void download(String fname,HttpServletRequest request,HttpServletResponse response) throws IOException {
		File file = new File("C:\\Users\\IBM\\Desktop\\imgs",fname);
		//在下载时,可能存在中文乱码,如何处理
		String name = fname;
		name = new String(name.getBytes("utf-8"),"iso8859-1");
		//从服务器端送给客户端文件
		//一个头、两个流
		InputStream is = null;
		OutputStream os = null;
		//作用是设置下载的时候文件名称
		response.setHeader("content-Disposition", "attachment;fileName="+name);
		is = new BufferedInputStream(new FileInputStream(file));
		os = response.getOutputStream();
		byte[] bs = new byte[1024];
		int len = -1;
		while((len = is.read(bs))!=-1) {
			os.write(bs, 0, len);
		}
	}

下载执行单元的新方式
//下载实现的新方式

@RequestMapping("/download.action")
	public ResponseEntity<byte[]> download(String fname) throws IOException{
		//找到文件所在路径
		File file = new File("C:\\Users\\IBM\\Desktop\\imgs",fname);
		//处理可能存在中文乱码问题
		String name = fname;
		name = new String(name.getBytes("utf-8"),"iso8859-1");
		//准备响应头
		HttpHeaders header = new HttpHeaders();
		header.setContentDispositionFormData("attachment", name);
		//响应内容的类型
//		header.setContentType(MediaType.APPLICATION_OCTET_STREAM); 
		//实现返回
		return new ResponseEntity<byte[]>(FileUtils.readFileToByteArray(file), header, HttpStatus.OK);
	}
SpringBoot 插件化开发详细总结 SpringBoot 插件化开发方案总结 阅读详情

相关推荐

基于Python的微信聊天记录分析——数据获取

本篇为“基于Python的微信聊天记录分析”第一篇,主要涉及数据获取,包括Python环境配置、WeChatMsg项目配置和运行、获取聊天记录等内容,流程简单、比较基础,后续这个系列会涉及基于Python的数据处理、统计分析、NLP技术等内容。希望和大家多多交流,共同进步!

Henryli1202的博客 1万+

Spring MVC使用篇(十四)—— 文件上传与下载

文章目录1、上传单个文件1.1 导入文件上传依赖jar包1.2 创建上传页面1.3 定义处理器(Controller)2、上传多个文件 1、上传单个文件 1.1 导入文件上传依赖jar包   Spring MVC实现文件上传,需要再添加两个jar包。一个是文件上传的jar包,一个是其所依赖的IO包。这两个jar包,均在Spring支持的org.apache.commons中。具体jar包如下: ...

王喆峰的博客 679

Autodesk软件网络授权破解

Autodesk 全系列产品网络授权破解 此网络许可授权破解文件及方法适用Autodesk 绝大部分的产品, 安装网络许可证管理器Autodesk网络许可证管理器x64位官方下载地址( https://knowledge.autodesk.com/sites/default/files/file_downloads/nlm11.14.1.3_ipv4_ipv6_win64.msi ) Autod...

weixin_33919950的博客 8264

上传头像

一、使用上传插件上传头像,简单实用。 二、 注意地方: 在控制层的 MultipartFile file  参数跟上传框中的name一样。在代码处详细标明 三、下载地址  点击打开链接 效果图   实体类 public class User { private int id; private String name; private

留不尽的相思泪的博客 628

Python库CloudScraper详细使用(绕过 Cloudflare 的反机器人页面的 Python 模块)

CloudScraper是一个专门用于绕过Cloudflare反机器人保护的Python库,它基于requests库构建,能够处理Cloudflare的5秒盾、WAF和人机验证等防护机制。

数据知道的博客 1万+

图神经网络实战(2)——图论基础

图论 (Graph theory) 是数学的一个基本分支,涉及对图研究。图是复杂数据结构的可视化表示,有助于理解不同实体之间的关系。图论提供了大量建模和分析现实问题的工具,如交通系统、社交网络和互联网等。在本节中,将介绍图论的基本原理,主要涉及三个方面:图属性、图概念和图算法。

盼小辉丶的博客 1万+

Spring 的下载、安装和使用

一、下载 Spring 下载地址:http://repo.spring.io/libs-release-local/org/springframework/spring/4.0.6.RELEASE/

韩世雷 程序员专栏 2万+

RK3588开发笔记-USB3.0接口调试

RK3588平台是一款强大的处理器,但要充分发挥其性能,需要正确调试其各种接口,包括USB 3.0接口。USB 3.0接口提供了更快的数据传输速度,但也可能面临一些问题。本篇博客将介绍如何在RK3588平台上调试USB 3.0接口,以确保其稳定性和性能。RK3588芯片具有强大的USB资源,包括多个USB接口和高速数据传输能力。RK3588通常具有多个USB接口,包括USB 2.0和USB 3.0。USB 2.0用于低速和全速设备连接,而USB 3.0则用于高速设备连接。

flypig has a dream! 2560

SpringMVC 实现文件的上传和下载

SpringMVC实现文件的上传和下载文件上传基于表单的文件上传MultipartFile 接口配置单文件上传Demo多文件上传Demo文件下载实现的关键代码运行效果单文件上传多文件上传文件下载 练习源码【upload_download】 文件上传 SpringMVC 的文件上传是基于commons-fileupload组件的文件上传。SpringMVC在原有文件上传组件做了进一步封装,简化了...

qq_41193133的博客 2230

基于STM32L4XX、HAL库的E180-ZG120B ZigBee模块驱动程序设计

/ 频率: 470MHz, SF7, BW125kHz, CR4/5, 功率14dBm。// 检查是否收到完整响应(根据实际情况调整)// 每5秒发送一次。PB0 <---> AUX (可选,用于状态检测)// 实际发送命令可能需要根据模块AT指令集调整。PC13 <---> RESET (可选)// 处理接收到的数据。// 缓冲区满,从头开始。// 其他必要的HAL库初始化代码...// 初始化E180模块。// 启动UART接收。// 如果需要等待响应。// 配置LoRa参数。

zhusl6688的博客 380

新政下的绿电直连项目经济性分析:模式创新与价值重构

随着全球气候治理与低碳转型进程不断加速,绿电直连作为新能源就近消纳的创新模式,正成为破解新能源消纳瓶颈、规避碳关税壁垒的核心路径。2025年9月,国家发展改革委、国家能源局发布《关于完善价格机制促进新能源发电就近消纳的通知》(1192号文),为绿电直连项目的经济性分析与效益测算提供了明确的政策依据。本文将基于新政框架,深入解析绿电直连项目的经济性影响因素、盈利模式与优化路径,并结合案例与量化模型,为项目投资决策提供系统参考。

getusushu的博客 140

SpringMVC文件上传和下载

将要下载的文件以字节流的形式写入到响应的输出流中,即通过使用 response.getOutputStream().write(byteArray) 将文件内容返回给客户端。在控制器方法中,可以通过专门的文件处理逻辑来处理上传的文件。电子商务平台:商家可以上传产品图片,用户可以下载产品说明书、用户手册等。医疗系统:医生可以上传检查报告、影像资料,患者可以下载自己的健康档案。在线教育平台:教师可以上传课件、资料,学生可以下载学习资料、作业等。企业应用:员工可以上传和下载团队文件、报告、表格以及其他工作文档。

时间如瑾 代码如诗 1612

你知道几种数字地与模拟地连接方式及优缺点?

频率选择性:磁珠的阻抗特性随频率变化,只对某个频点的噪声有显著抑制作用,对于频率不确定或无法预知的情况,可能不是最佳选择。在实际应用中,选择合适的连接方式需要根据具体的电路频率、信号类型、设计要求等因素综合考虑,以达到最佳的电磁兼容效果.高频信号干扰:在高频电路中,单点接地可能导致信号回流路径过长,增加地线电感,从而引入高频噪声。限制噪声电流:0欧姆电阻相当于一个非常窄的电流通路,能够有效地限制环路电流,使噪声得到抑制。抑制高频信号:电感对高频信号有较大的阻碍作用,可以有效抑制高频噪声。

linkking27的博客 801

SpringMVC实现文件上传和下载

在实际的项目开发中,文件的上传和下载可以说是最常用的功能之一,例如图片的上传与下载、邮件附件的上传和下载等。本篇我们将对 Spring MVC 中的文件上传和文件下载功能进行分享。

weixin_65644655的博客 2072

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

SpringMVC | SpringMVC中的 “文件上传和下载”

目录: 一、文件上传 1.1 文件上传“概述” 1.2 文件上传“具体配置” : “前端”中配置“文件上传” ( type=“file” + 满足3个条件 ) “后端”中配置“文件上传” ( 配置id为“CommonsMultipartResolver”的bean + 配置“文件上传”的“约束条件” + 通过“MultipartFile接口”参数接收“传来的文件”) 1.3 文件上传“应用案例” : 文件上传 (存储在“相对路径”) 文件上传 (存储在“绝对路径”) 二、文件下载 .....

m0_70720417的博客 3270

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

SpringMVC实现文件的上传和下载

fileName=1.txt">点击下载文件(1.txt)fileName=2.txt">点击下载文件(2.txt)fileName=3.txt">点击下载文件(3.txt)fileName=4.txt">点击下载文件(4.txt)

weixin_69619960的博客 1586

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

SpringMVC上传和下载

根据狂神的SpringMVC中的上传和下载 1.文件上传 导包 <!-- https://mvnrepository.com/artifact/commons-fileupload/commons-fileupload --> <dependency> <groupId>commons-fileupload</groupId> <artifactId>commons-fileupload</artifactId>

weixin_46170033的博客 193

SpringMVC之文件的上传与下载

文章目录一:文件的上传:1、添加需要的jar包:2、修改spring-mvc.xml 配置文件,定义文件上传解析器:3、编写文件上传Controller方法:4、编写文件上传的from表单(jsp页面):二:文件的下载:1、文件下载的方法代码如下:2、编写文件下载的jsp页面,代码如下:3、测试附:完整的代码:Controller层:jsp页面:spring-mvc.xml: 一:文件的上传: 1...

程序羊的博客 1542

SpringMVC中下载与上传

在SpringMVC中,想要实现上传和下载比较简单 上传 上传下载第一步,前加入jar包 commons-fileupload-1.2.1.jar commons-io-2.0.jar 加入jar包之后,可以在Spring的配置文件中配置上传文件的一些限制 <bean id="multipartResolver" class="org.springframework.we...

weixin_44339867的博客 205

SpringMVC05_文件上传和下载

SpringMVC05_文件上传 单文件上传 upload.jsp <%@ page contentType="text/html;charset=UTF-8" language="java" %> <%@ page isELIgnored="false" %> <html> <head> <title>Title</title> </head> <body> <form action

BLU_111的博客 6万+

springmvc实现文件的上传和下载

springmvc实现文件的上传和下载 一、需要的依赖 <!--web程序的发动机servlet--> <dependency> <groupId>javax.servlet</groupId> <artifactId>javax.servlet-api</artifactId> <version>4.0.1</version> <scope>provided</

丢了风筝的线的博客 225

【springMVC】SpringMVC文件的上传和下载【附源码】

一、文件上传 文件上传都是通过表单形式提交给后台服务器的,因此,要想实现文件上传功能,就需要提供一个文件上传的表单,该表单需要满足下面的3个条件: (1)form表单的method属性设置为post; (2)form表单的enctype属性设置为multipart/from-data; (3)提供< input type = “file” name = “filename” />的文件上传输入框。 实现文件上传 (1)文件上传的依赖 <!--文件上传的依赖--> <depend

weixin_46081857的博客 1183

SpringMVC实现文件的上传与下载

所需要的jar包 一、文件上传 springmvc.xml <!-- 配置 MultipartResolver --> <bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver"> <propert...

qq_39757209的博客 1023

六、SpringMVC实现文件上传下载

SpringMVC-servlet.xml 使用springMVC来处理文件上传和下载需要添加如下的配置文件,而且id是固定的 可以到org.springframework.web.servlet.DispatcherServlet的源码文件下查看 CommonsMultipartResolver提供三个属性设置,可以跳转到源码开头的注释查看 SpringMVC-servlet.xml中添...

玻璃汽水的博客 7053

springMVC文件下载和上传

springMvc文件上传和下载 文件上传 使用MultipartFile接收文件 大致步骤: 获取文件 进行文件和保存路径的操作 判断文件是否存在,不存在就新建一个 保存文件,并进行其他操作(存入数据库等) 返回操作提示信息 @PostMapping("/upload") @ResponseBody public String uploadFile(@RequestP...

Simlier的博客 210

springMVC上传和下载文件

//springMVC只能上传到本地,不同电脑之间参考FTP上传 @RequestMapping(value ="uploadFileStore.do", method = RequestMethod.POST) public void uploadFileStore(HttpServletResponse response, FileStore fileStore, @Requ...

a77748937的博客 133
上一篇: springmvc的工作流程
下一篇: SpringMVC 拦截器实现原理和登录实现
System_sheep
博客等级 码龄8年 3粉丝 28原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值