首页 > 其他分享 >SpringMcv 文件上传下载

SpringMcv 文件上传下载

时间:2023-04-26 23:07:55浏览次数:48  
标签:文件 MultipartResolver RequestParam Spring 上传下载 SpringMcv multipartFile 上传

文件上传

Spring MVC 为文件上传提供了直接的支持,这种支持是通过即插即用的 MultipartResolver 实现的。

Spring 用 Jakarta Commons FileUpload 技术实现了一个 MultipartResolver 实现类:CommonsMultipartResovler

Spring MVC 上下文中默认没有装配 MultipartResovler,因此默认情况下不能处理文件的上传工作,如果想使用 Spring 的文件上传功能,需现在上下文中配置 MultipartResolver image.png

配置 MultipartResolver

defaultEncoding: 必须和用户 JSP 的 pageEncoding 属性一致,以便正确解析表单的内容

为了让 CommonsMultipartResovler 正确工作,必须先将 Jakarta Commons FileUpload 及 Jakarta Commons io 的类包添加到类路径下。 image.png

  • jar包
commons-fileupload-1.2.1.jar
commons-io-2.0.jar
  • 配置文件上传解析器
<!-- 配置文件上传解析器 id必须是"multipartResolver",否则,会报错误: java.lang.IllegalArgumentException: 
	Expected MultipartHttpServletRequest: is a MultipartResolver configured? -->
<bean id="multipartResolver"
class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
	<property name="defaultEncoding" value="UTF-8"></property>
	<property name="maxUploadSize" value="1024000"></property>
</bean>
  • 上传类型为file
</head>
<body>
	<form action="testUpload" method="post" enctype="multipart/form-data">
		文件: <input type="file" name="file" /><br>
		<br> 描述: <input type="text" name="desc" /><br>
		<br> <input type="submit" value="提交" />
	</form>
</body>
  • 控制器方法
  • @RequestParam("file") MultipartFile multipartFile 获取文件
@RequestMapping(value = "/testUpload", method = RequestMethod.POST)
public String testUpload(
  @RequestParam(value = "desc", required = false) String desc,
  @RequestParam("file") MultipartFile multipartFile)
  throws IOException {
	//上传到指定位置
	multipartFile.transferTo(new File("D:\\java" + multipartFile.getOriginalFilename()));
	return "success";
}

多文件上传

image.png

标签:文件,MultipartResolver,RequestParam,Spring,上传下载,SpringMcv,multipartFile,上传
From: https://blog.51cto.com/u_15993308/6229013

相关文章

  • 数据存储与访问——文件存储读写
    本节给大家介绍的是Android数据存储与访问方式中的一个——文件存储与读写,当然除了这种方式外,我们可以存到SharedPreference,数据库,或者Application中。1.Android文件的操作模式学过Java的同学都知道,我们新建文件,然后就可以写入数据了,但是Android却不一样,因为Android是基于Linux的,我......
  • 如何在博客园快速上传Markdown文件
    如何在博客园快速上传Markdown文件1、首先拥有书写MarkDown文件的工具:例如:Typora(博主推荐使用)MarkdownPadBookPad小书匠VisualStudioCode等等下载Typora的地址(自取):MarkDown软件https://www.aliyundrive.com/s/vnBazjXLdkr提取码:tx58点击链接保存,或者复制本段内......
  • 在linux中如何读取使用tcpdump命令抓取保存的tcpdump capture file类型的数据文件
    笔者在之前的文章中,说明了如何在linux使用tcpdump命令进行抓包,以及将抓包结果保存到文件具体操作,可以参考:https://www.cnblogs.com/5201351/p/17357444.html如果是使用tcpdump命令,-wxxxxxx.dump这种方式保存的文件,我们可以通过file命令发现其文件类型[root@localhostqq-52......
  • 一篇文章告诉你金融行业如何高效管理文件
    由于金融行业的行业属性,信息安全万分重要。因此在文件管理工具时,要注意数据安全问题,那么金融行业如何高效管理文件呢?首先金融行业在文件管理时可能面临以下问题:1,资料繁杂,整理困难,使用不便;2,传统文件协作方式存在安全隐患;3,当员工出差时,无法及时调取需要的文件。ZohoWorkdrive企业网......
  • FLV文件分析
    很久没看,做下关于FLV文件格式知识点回顾!一、简单介绍    FLV(FlashVideo)是Adobe公司推出的一种媒体封装格式。一个FLV文件,每个Tag类型都属于一个流。也就是说一个FLV文件最多只有一路音频流、一个路视频流,不能定义单个类型的多个独立流在一个文件中。    FLV数......
  • Geotools处理shape文件
    shape文件结构filename.shp:shapesfilename.shx:索引文件filename.dbf:结构化数据文件filename.qix:空间索引文件filename.fix:fid索引文件filename.sld:样式文件依赖<dependency><groupId>org.geotools</groupId><artifactId>gt-main</artifactId>......
  • cmake包含单独.hpp文件
    myproject/├──CMakeLists.txt├──main.cpp└──include└──hello.hpp#OpenCVfind_package(OpenCVREQUIRED)include_directories(${OpenCV_INCLUDE_DIRS})#Eigenfind_package(Eigen3REQUIRED)include_directories(${EIGEN3_INCLUDE_DIR})include_dire......
  • <packaging>war</packaging>在pom.xml文件里添加这个会导致404的出现
    Maven,javaweb我在pom.xml文件里面添加了这行代码<packaging>war</packaging>就会导致jsp界面的运行失败但是还无道理呀,以往都可以运行成功的啊我通过一行一行注释代码创建项目找到的答案,找了我好久。<?xmlversion="1.0"encoding="UTF-8"?><projectxmlns="http://maven.......
  • python的文件路径操作(转)
    1.1绝对路径不同操作系统下绝对路径的表现形式是不一样的,以Windows系统为例,一个文件的路径可能是这样的:D:\files\data\ndvi.tif其中:D:\:表示根文件夹,是文件所在的盘符,即D盘。D:\files\data:表示文件所在的文件夹的路径,即D盘的files文件夹的子文件夹data。ndvi.tif:表示文件名......
  • struts1 上传文件
    java代码:packagecom.struts1.form;importorg.apache.struts.action.ActionForm;importorg.apache.struts.upload.FormFile;publicclassUploadFileFormextendsActionForm{ privatestaticfinallongserialVersionUID=1L; privateFormFileformFile; pu......