SpringMVC使用进阶-文件上传

SpringMVC - 进阶 这个注解上面有@Component注解,说明被@Controller标注的类会被注册到spring容器中,value属性用来指定这个bean的名称。应用场景:当响应结果比较复杂的时候,springmvc无法处理这些响应结果的时候,我们可以在控制器的方法中使用response来主动控制输出的结果。@ResponseBody可以放到Controller上面,这样所有方法的返回就可以返回Json数据了,Spring还提供了简化的注解@RestController。接收cookie的内容@CookieValue。 阅读详情

如今文件上传的方式已经是遍地开花,各种五花八门的文件上传有的时候着实让人难以抉择,如果是使用springmvc也不用为文件上传而发愁,springmvc的文件上传比struts2的那个还要简单,就是寥寥无几的一点代码就能解决上传。

1  修改之前的配置文件

spring主要是编写配置文件比较麻烦,配置文件正确是程序正确执行的关键,同样的springmvc如果要支持文件上传也需要加上如下配置;

<!-- 文件上传相关配置 -->
    <bean id="multipartResolver"  class="org.springframework.web.multipart.commons.CommonsMultipartResolver" >  
	    <property name="defaultEncoding" value="gbk"/> <!-- 默认编码 (ISO-8859-1) -->  
	    <property name="maxInMemorySize" value="10240"/> <!-- 最大内存大小 (10240)-->  
	    <property name="uploadTempDir" value="/temp/"/> <!-- 上传后的目录名 (WebUtils#TEMP_DIR_CONTEXT_ATTRIBUTE) -->  
	    <property name="maxUploadSize" value="-1"/> <!-- 最大文件大小,-1为无限止(-1) -->  
    </bean>


2  文件上传界面

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>文件上传</title>
</head>
<body>
<form action="upload.do"  method="post" enctype="multipart/form-data">
	名称:<input type="text" name="name" /><br><br>
	选择文件:<input type="file" name="image" /><br><br>
	<input type="submit" value="确认上传"/>
</form>
</body>
</html>

无论jsp、php、asp.net上传文件一般都通过表单上传,而且还必须有enctype="multipart/form-data",否则文件将无法上传成功,还需要注意的一点就是springmvc的上传实现使用的是commons-io,因此相应的jar包也不能少。


3  文件上传控制器

package org.hncst.controller;

import java.io.File;
import java.util.Date;

import javax.servlet.ServletContext;

import org.springframework.stereotype.Component;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.context.ServletContextAware;
import org.springframework.web.multipart.commons.CommonsMultipartFile;

@Controller
public class FileUploadController  implements ServletContextAware{
	private ServletContext servletContext;
	public ServletContext getServletContext() {
		return servletContext;
	}

	public void setServletContext(ServletContext servletContext) {
		this.servletContext = servletContext;
	}
	@RequestMapping(value="/upload.do", method = RequestMethod.POST)
	public String uploadFile(String name,@RequestParam("image") CommonsMultipartFile file) {
        String path=this.servletContext.getRealPath("/upload");
        //取得原始的文件名
        String fileName=file.getOriginalFilename();
        //取得文件的后缀(包含点号)
        String fileExt=fileName.substring(fileName.lastIndexOf("."));
        //使用时间戳给文件命名
        File file2=new File(path,new Date().getTime()+fileExt);
        //将上传的文件保存起来
        try {
			file.getFileItem().write(file2);
		} catch (Exception e) {
		
			e.printStackTrace();
			
			return "redirect:uploadFailure.jsp";
		}
		return "redirect:uploadSuccess.jsp";
	}

	
}

这个上传的实现和struts有比较相似,都要取得上下文对象,struts和springmvc的做法大体类似,控制器都需要实现ServletContextAware接口。
【SpringMVC 】什么是SpringMVC(三)?基于springmvc的文件上传、基于springmvc的拦截器、基于springmvc的邮件发送 @@@@@@@@@@@邮件发送 通过java进行邮件发送,会涉及到两种协议: 1、smtp 简单邮件传输协议 作用:用于指定如何发送邮件 2、pop3 邮局协议版本3 作用:用于指定如何接收邮件 @@@@@@@@我们在进行邮件发送时,首先需要开通邮箱的这两个协议 @@@@@@@@邮件发送的过程 此处,我们以QQ邮箱为例,进行配置,准备工作 登录QQ邮箱,开通smtp,pop3协议 阅读详情

相关推荐

Maven SpringMVC进阶

基于maven仓库创建的SpringMVC框架,丰富了资源配置,包括js.css等静态资源,controller层丰富了多种请求方式,还有文件上传功能。

Spring MVC进阶

Spring MVC中使用注解声明某类的实例是控制器定义控制器。

像污秽一样的博客 1087

springMvc进阶

Spring MVC framework深入分析,Spring MVC framework的执行过程,比O/R Mapping或其它的framework简单

2.4.9 SpringMVC进阶, ajax异步交互(RequestBody, ResponseBody), RESTful编程风格, 文件上传方式, 异常处理机制, 拦截器的使用

任务二:springmvc进阶 课程任务主要内容: 一 ajax异步交互 Springmvc默认用MappingJackson2HttpMessageConverter对json数据进行转换,需要加入jackson的包;同时使用 <mvc:annotation-driven /> <dependency> <groupId>com.fasterxml.jackson.core</groupId>

chengh1993的博客 478

spring 集合 smartupload 简单实现上传下载应用

spring 集合 smartupload 简单实现上传下载应用 spring 集合 smartupload 简单实现上传下载应用 spring 集合 smartupload 简单实现上传下载应用

单细胞实战之数据净化三部曲:细胞周期校正、双胞体剔除与RNA污染清理——技术解析与实战指南

本文深入解析单细胞数据分析中至关重要的数据净化步骤,即细胞周期校正、双胞体剔除与RNA污染清理。通过实战代码演示与原理剖析,指导读者如何有效识别并去除技术噪音,从而获得更纯净、可靠的数据,为后续的细胞分群、差异表达等高级分析奠定坚实基础。

weixin_29274337的博客 205

Springmvc进阶

RESTful风格 概念 传统url设计风格 保存品牌:/brand/save 修改品牌:/brand/update 删除1号品牌:/brand/delete?id=1 查询1号品牌:/brand/select?id=1 常见HTTP请求方式 GET:查询 POST:保存 PUT:修改 DELETE:删除 restful设计风格【最终版】 保存品牌:/brand+POST 修改品牌:/brand+PUT 删除1号品牌:/brand/1+DELETE 查询1号品牌:/brand/1+GET 路径参数 @Pat

QinWei_的博客 368

智能车视觉算法实战:十字路口与弯道拐点的精准识别

本文深入探讨了智能车视觉导航中十字路口与弯道拐点的精准识别算法。通过实战经验,详细解析了如何利用纵向巡线法生成边界数组,并从中高效提取“上拐点”与“下拐点”的关键特征。文章重点分享了提升算法鲁棒性的核心技巧,包括图像预处理、ROI设置、状态机应用及多特征融合,旨在帮助开发者实现智能车在复杂路况下从“看见”到“看懂”的稳定决策。

weixin_29061465的博客 633

Spring Web MVC从入门到实战

本文全面讲解Spring Web MVC框架的核心知识与实战应用,从MVC设计模式原理入手,深入剖析Spring MVC的核心注解、请求响应处理机制、应用分层架构等关键内容。通过多个企业级实战项目(加法计算器、用户登录系统、图书管理系统),结合Postman、Lombok等开发工具,帮助开发者快速掌握Spring MVC在实际开发中的应用技巧。文章严格遵循企业开发规范,包含完整的代码示例、技术图表和权威参考链接,适合Java后端开发者从入门到精通Spring MVC框架,构建高质量的Web应用程序。

此人很懒,什么都留下了...快进来看看吧 4391

FPGA之全数字锁相环(DPLL)

1. 数字锁相环的基本原理和组成 1.1 锁相环(PLL)的简介 锁相环最开始并不是用在数字电路中,而是模拟短路中。对于模拟电路中的锁相环,大家可以参考这篇文章稍微看一下,数字和模拟只是实现的方法不同,但是原理、步骤还是共同的。关于模拟PLL。可以参考一片文章: http://www.sohu.com/a/190569594_464086 首先在学习数字锁相环之前,我们应该先了解什么是锁相环?锁相...

DBLLLLLLLL的博客 5万+

【实战指南】DBeaver EE Windows版高效破解与配置全解析

本文详细解析了DBeaver EE Windows版的高效破解与配置方法,涵盖Java环境配置、破解包部署、配置文件修改等关键步骤,并提供了性能优化和数据库连接的最佳实践。适用于需要解锁企业版高级功能的数据库开发人员,帮助提升工作效率。

weixin_28837817的博客 1903

SpringMVC--文件上传

即使是面试跳槽,那也是一个学习的过程。只有全面的复习,才能让我们更好的充实自己,武装自己,为自己的面试之路不再坎坷!今天就给大家分享一个Github上全面的Java面试题大全,就是这份面试大全助我拿下大厂Offer,月薪提至30K!我也是第一时间分享出来给大家,希望可以帮助大家都能去往自己心仪的大厂!为金三银四做准备!

2401_83330193的博客 860

ABAP CDS 视图参数 parameter_list 详解与最佳实践:从语法、作用域到可运行范例

本文系统梳理了ABAP CDS视图的WITH PARAMETERS定义与使用。主要内容包括:1)参数声明语法及其在整条SELECT语句中的贯穿使用;2)参数在WHERE/HAVING/ON等位置的多种写法(:pname和$parameters.pname);3)参数在航空公司航线筛选等实际业务场景中的应用;4)参数与会话变量的协作策略;5)在JOIN ON、HAVING、CASE等高级用法中的实践;6)提供完整的CDS视图与ABAP程序示例,展示参数声明、使用及Open SQL传参方式。所有内容均基于SAP

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 372

SpringMVC进阶

SpringMVC进阶 1.异步调用 1.1 发送异步请求(重点) 发送异步请求(回顾) <a href="javascript:void(0);" id="testAjax">访问controller</a><br> <script type="text/javascript" src="/js/jquery-3.3.1.min.js"/> <script type="text/javascript"> $(function() {

qq_53529114的博客 310

RK3568适配MIPI屏幕触摸,触摸延时很大

我用的是系统,接了一个,设备树已经正确配置,evtest测试坐标值和触摸位置都是准确的。但是出现了一个:我在屏幕上点一下,要等大约 2 秒才能在evtest里看到坐标事件打印。这种现象在 Goodix 系列触摸驱动里比较少见,一般意味着。

小灰灰的博客 1363

基于Matlab的自动泊车系统开发:利用模糊控制实现智能停车解决方案的详细教程

Matlab是一种广泛应用于科学计算、工程建模与仿真的编程语言,其强大的工具箱和简洁的编程语法,使其成为开发自动泊车系统的理想选择。在开始编写代码之前,我们需要搭建Matlab的工作环境,并熟悉相关的工具箱,如Fuzzy Logic Toolbox,用于实现模糊控制。首先,确保你已经安装了Matlab软件,并加载了必要的工具箱。接下来,我们将逐步讲解如何在Matlab中实现自动泊车系统。

qq_38334677的博客 663

SpringMVC的文件上传

文件上传客户端表单需要满足:表单项type=“file”表单的提交方式是post表单的enctype属性是多部分表单形式,及enctype=“multipart/form-data”

楠黎倾风的博客 2万+

备战2025数学建模国赛(算法46):多目标优化

本篇博客将深入浅出地介绍多目标优化的核心概念、主流算法,并重点结合一个数学建模竞赛的经典案例,提供完整的Python代码实现,助你在未来的竞赛中游刃有余。它通过寻找帕累托最优解集,完美地诠释了“鱼与熊掌不可兼得”的权衡思想,为最终决策提供科学依据。这些问题都包含多个相互冲突的目标,传统的单目标优化方法(如梯度下降、单纯形法)对此无能为力,因为它们无法同时优化多个目标。在数学建模竞赛中,我们面临的绝大多数问题都不是单一的“最好”,而是充满权衡与妥协的“最优”。记住,成功的建模不仅在于解出问题,更在于清晰地。

YOLO 285

使用SpringMVC进行文件上传

文件上传是表现层常见的需求,在Spring MVC中底层使用Apache的Commons FileUpload工具来完成文件上传,对其进行封装,让开发者使用起来更加方便。接下来看看如何开发? 1 导入common-fileupload包 <!-- commons-fileUpload --> <dependency> <groupId>commons-fil...

Java客学习室 1036

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

使用SpringMVC框架实现文件上传功能

一、导入依赖 <!-- 文件上传包 --> <dependency> <groupId>commons-fileupload</groupId> <artifactId>commons-fileupload</artifactId> <version>1.3.1</version&gt...

"✧treasure mountain✧" 8047

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

Java进阶:SpringMVC文件上传(1)

由于篇幅原因,就不多做展示了《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取![外链图片转存中…(img-X4xtBj6P-1713310635192)][外链图片转存中…(img-ZbvZcs9T-1713310635192)]由于篇幅原因,就不多做展示了《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!

2401_84003977的博客 755

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

SpringMVC实现文件上传

1.文件上传之上传原理分析和搭建环境 springmvc文件上传也会用到Javaweb实现文件上传的组件。 1.1文件上传的必要条件 A .form 表单的 enctype 取值必须是:multipart/form-data (默认值是:application/x-www-form-urlencoded) enctype:是表单请求正文的类型 (默认表单提交数据的格式是键值对的方式,比如username=hehe&password=123。但我们把取值改成multipart,会把我们分成几个部分)

Java硬件工程师的博客 2018

Java进阶:SpringMVC文件上传

终极手撕架构师的学习笔记:分布式+微服务+开源框架+性能优化《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!” />终极手撕架构师的学习笔记:分布式+微服务+开源框架+性能优化[外链图片转存中…(img-1KHPl3Uy-1713310669669)]《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!

2401_84004012的博客 572

【SpringMVC】文件上传和下载使用详解

本文目录文件上传第一步:创建SpringMVC工程第二步:添加页面表单信息第三步:Controller中接收数据文件下载方法1:基于ResponseEntity实现方式2:Java通用下载实现 文件上传 第一步:创建SpringMVC工程 参考 【SpringMVC】SpringMVC入门实例创建一个SpringMVC工程 创建好的工程目录如下: 在pom.xml文件中添加文件上传相关的依赖包 <dependency> <groupId>commons-fil

lucashu的博客 863

使用SpringMVC实现文件上传

使用SpringMVC实现文件上传 步骤: 1、导入需要依赖的jar包 commons-fileupload commons-fileupload 1.3.1 2、在springmvc配置文件中定义文件上传解析器 在springmvc配置文件中定义文件上传解析器: 3、定义文件上传的Cont

it_Shine的博客 746
上一篇: SpringMVC使用进阶-内置对象和跳转
下一篇: Ajax与SpringMvc交互
青蛙小王子
博客等级 码龄16年 239粉丝 311原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值