Spring MVC-文件的上传和下载,重磅消息

✨【一心同学】的写作风格:喜欢用【通俗易懂】的文笔去讲解每一个知识点,而不喜欢用【高大上】的官方陈述。

✨【一心同学】博客的领域是【面向后端技术】的学习,未来会持续更新更多的【后端技术】以及【学习心得】。

✨如果有对【后端技术】感兴趣的【小可爱】,欢迎关注一心同学】💞💞💞

❤️❤️❤️**感谢各位大可爱小可爱!**❤️❤️❤️


目录

1.介绍

2.文件上传

3.文件下载

结语


1.介绍

====

  • SpringMVC 可以很好的支持文件上传,但是SpringMVC上下文中默认没有装配MultipartResolver,因此默认情况下其不能处理文件上传工作。如果想使用Spring的文件上传功能,则需要在上下文中配置MultipartResolver。

  • 前端必须将表单的method设置为POST,并将enctype设置为multipart/form-data。只有在这样的情况下,浏览器才会把用户选择的文件以二进制数据发送给服务器;

enctype 属性介绍

  • application/x-www=form-urlencoded:默认方式,只处理表单域中的 value 属性值,采用这种编码方式的表单会将表单域中的值处理成 URL 编码方式。

  • multipart/form-data:这种编码方式会以二进制流的方式来处理表单数据,这种编码方式会把文件域指定文件的内容也封装到请求参数中,不会对字符编码。

  • text/plain:除了把空格转换为 “+” 号外,其他字符都不做编码处理,这种方式适用直接通过表单发送邮件。

2.文件上传

======

(1)导入文件上传的依赖包

commons-fileupload

commons-fileupload

1.3.3

javax.servlet

javax.servlet-api

4.0.1

(2)配置springmvc核心配置文件

参数分析:

属性描述
maxUploadSize上传文件最大长度(以字节为单位)
maxInMemorySize缓存中的最大尺寸
defaultEncoding默认编码格式
resolveLazily推迟文件解析,以便在Controller中捕获文件大小异常

注意:bena的id必须为:multipartResolver , 否则上传文件会报400的错误!

(3)编写前端页面

<%@ page contentType=“text/html;charset=UTF-8” language=“java” %>

$Title$

(4)编写Controller

MultipartFile接口中的主要方法

MultipartFile接口中的主要方法
方法说明
byte[]getBytes()以字节数组的形式返回文件的内容
String getContentType()返回文件的内容类型
InputStream getInputStream()读取文件内容,返回一个InputStream流
String getName()获取多部件form表单的参数名称
String getOriginalFilename()获取上传文件的初始化名
long getSize()获取上传文件的大小,单位是字节
boolean isEmpty()判断上传的文件是否为空
void transferTo(File file)将上传文件保存到目标目录下

package com.yixin.controller;

import org.springframework.stereotype.Controller;

import org.springframework.web.bind.annotation.RequestMapping;

import org.springframework.web.bind.annotation.RequestParam;

import org.springframework.web.multipart.commons.CommonsMultipartFile;

import javax.servlet.http.HttpServletRequest;

import java.io.*;

@Controller

public class FileController {

//@RequestParam(“file”) 将name=file控件得到的文件封装成CommonsMultipartFile 对象

//批量上传CommonsMultipartFile则为数组即可

@RequestMapping(“/upload”)

public String fileUpload(@RequestParam(“file”) CommonsMultipartFile file , HttpServletRequest request) throws IOException {

//获取文件名 : file.getOriginalFilename();

String uploadFileName = file.getOriginalFilename();

//如果文件名为空,直接回到首页!

if (“”.equals(uploadFileName)){

return “redirect:/index.jsp”;

小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数初中级Java工程师,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年最新Java开发全套学习资料》送给大家,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
img
img
img

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频

如果你觉得这些内容对你有帮助,可以添加下面V无偿领取!(备注Java)
img

最后总结我的面试经验

2021年的金三银四一眨眼就到了,对于很多人来说是跳槽的好机会,大厂面试远没有我们想的那么困难,摆好心态,做好准备,你也可以的。

另外,面试中遇到不会的问题不妨尝试讲讲自己的思路,因为有些问题不是考察我们的编程能力,而是逻辑思维表达能力;最后平时要进行自我分析与评价,做好职业规划,不断摸索,提高自己的编程能力和抽象思维能力。

BAT面试经验

实战系列:Spring全家桶+Redis等

其他相关的电子书:源码+调优

面试真题:

编程能力和抽象思维能力。

[外链图片转存中…(img-r7UNGAwf-1711082160365)]

BAT面试经验

实战系列:Spring全家桶+Redis等

[外链图片转存中…(img-FHlZcJta-1711082160366)]

其他相关的电子书:源码+调优

[外链图片转存中…(img-vz4fYs87-1711082160366)]

面试真题:

[外链图片转存中…(img-rkCWZKjd-1711082160367)]

[外链图片转存中…(img-9R9nmFlq-1711082160368)]

本文已被CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】收录

  • 8
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
spring mvc-5.2.3.release.zip 是Spring框架的一个版本,具体说就是Spring MVC(Model-View-Controller)模块的5.2.3版本的发布文件Spring MVCSpring框架中用于开发Web应用程序的一部分,它提供了一种基于MVC模式的架构来组织和管理Web应用程序的各个组件。 首先,spring mvc-5.2.3.release.zip文件是一个压缩文件,它包含了Spring MVC框架的相关文件和资源。你可以通过下载和解压这个文件,来获取Spring MVC的相关代码和配置文件。 在这个压缩文件中,你可以找到一些重要的文件文件夹。其中包括: 1. lib文件夹:这个文件夹中包含了Spring MVC框架所依赖的一些库文件,例如Spring核心库、Servlet API等。通过将这些库文件添加到你的项目中,你就可以在你的应用程序中使用Spring MVC提供的功能了。 2. config文件夹:这个文件夹中包含了Spring MVC框架的一些配置文件,例如web.xml、spring配置文件等。你需要根据你的具体需求修改和配置这些文件,以使得Spring MVC可以正确地工作在你的应用程序中。 3. sample文件夹:这个文件夹中包含了一些示例代码和示例应用程序,这些示例可以帮助你理解和学习Spring MVC的使用方法和开发技巧。 总之,spring mvc-5.2.3.release.zip是Spring MVC框架5.2.3版本的发布文件,通过下载和解压这个文件,你可以获取到Spring MVC框架的相关代码和资源,从而在你的Web应用程序中使用和开发Spring MVC功能。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值