• java培训课程Spring MVC之文件上传


    文件上传

    • Spring MVC 为文件上传提供了直接的支持,这种支持是通过即插即用的 MultipartResolver 实现的。
    • Spring 用 Jakarta Commons FileUpload 技术实现了一个 MultipartResolver 实现类:CommonsMultipartResolver
    • Spring MVC 上下文中默认没有装配 MultipartResovler,因此默认情况下不能处理文件的上传工作,如果想使用 Spring 的文件上传功能,需现在上下文中配置 MultipartResolver

       

    • 配置 MultipartResolver

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

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

       

    2 文件上传示例

    • 拷贝jar包

    commons-fileupload-1.2.1.jar

    commons-io-2.0.jar

    严重: Servlet /SpringMVC_06_FileUpload threw load() exception

    java.lang.ClassNotFoundException: org.apache.commons.fileupload.FileItemFactory

    • 配置文件上传解析器

    id必须是”multipartResolver”,否则,会报错误:

    java.lang.IllegalArgumentException: Expected MultipartHttpServletRequest: is a MultipartResolver configured?

     –>

     class=”org.springframework.web.multipart.commons.CommonsMultipartResolver“>

    • 上传页面

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

        pageEncoding=”UTF-8″%>

     “http://www.w3.org/TR/html4/loose.dtd”>

    Insert title here

    文件:

    描述:

    提交“/>

    • 控制器方法

    package com.atguigu.springmvc.crud.handlers;

    import java.io.IOException;

    import java.io.InputStream;

    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.multipart.MultipartFile;

    @Controller

    public class UploadHandler {

    @RequestMapping(value=”/testUpload”,method=RequestMethod.POST)

    public String testUpload(@RequestParam(value=”desc”,required=false) String desc, @RequestParam(“file”) MultipartFile multipartFile) throws IOException{                

    System.out.println(“desc : “+desc);

    System.out.println(“OriginalFilename : “+multipartFile.getOriginalFilename());

    InputStream inputStream = multipartFile.getInputStream();

    System.out.println(“inputStream.available() : “+inputStream.available());

    System.out.println(“inputStream : “+inputStream);

    return “success”; //增加成功页面: /views/success.jsp

    }

    }

    3 思考多个文件上传?

    想要了解跟多关于java培训课程内容欢迎关注尚硅谷java培训,尚硅谷除了这些技术文章外还有免费的高质量java培训课程视频供广大学员下载学习。

  • 相关阅读:
    Java-使用Map集合计算文本中字符的个数
    信息安全软考——第三章 密码学基本理论笔记 很全呀!
    基于图像识别框架Airtest的Windows项目自动化测试实践
    索引的数据结构(2)
    【Docker从入门到入土 1】Docker架构、镜像操作和容器操作
    TorchScript学习使用
    1053 Path of Equal Weight
    【附源码】计算机毕业设计JAVA宠物救助网站的设计与实现
    python-opencv之图像滤波(blur,boxFilter,GaussianBlur,medianBlur)
    一分钟看懂“低代码“是什么?低代码真能“砸“掉程序员饭碗?
  • 原文地址:https://blog.csdn.net/zjjcchina/article/details/126779402