博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
springmvc文件上传
阅读量:6477 次
发布时间:2019-06-23

本文共 1644 字,大约阅读时间需要 5 分钟。

1、

文件的上传与下载基本上是web项目中会用到的技术,在web学习中我们用到的是 Apache fileupload这个组件来实现上传,在springmvc中对它进行了封装,让我们使用起来比较方便,但是底层还是由Apache fileupload来实现的。springmvc中由MultipartFile接口来实现文件上传。

2、MultipartFile接口

该接口用来实现springmvc中的文件上传操作,它有两个实现类:

1121080-20190525201019251-1142266016.png

接口定义的方法:

1121080-20190525201042265-1796182099.png

3、实现文件上传

3.1 导入jar包

  • commons-fileupload
  • commons-io

commons-io可以不用自己导入,maven会自动导入对应版本的jar

commons-fileupload
commons-fileupload
1.3.2

3.2 前端jsp页面

  • input的type设置为file
  • form表单的method设为post,
  • form表单的enctype设置为multipart/form-data,以二进制的形式传输数据。

    <%@ page language="java" contentType="text/html; charset=UTF-8"      pageEncoding="UTF-8"%>        
    Insert title here

3.3 Controller层接收

使用MultipartFile对象作为参数,接收前端发送过来的文件,将文件写入本地文件中,就完成了上传操作

@RequestMapping("/upload")public String upload(@RequestParam("file") MultipartFile file, HttpServletRequest req)        throws IllegalStateException, IOException {    // 判断文件是否为空,空则返回失败页面    if (file.isEmpty()) {        return "failed";    }    // 获取文件存储路径(绝对路径)    String path = req.getServletContext().getRealPath("/WEB-INF/file");    // 获取原文件名    String fileName = file.getOriginalFilename();    // 创建文件实例    File filePath = new File(path, fileName);    // 如果文件目录不存在,创建目录    if (!filePath.getParentFile().exists()) {        filePath.getParentFile().mkdirs();        System.out.println("创建目录" + filePath);    }    // 写入文件    file.transferTo(filePath);    return "success";}

3.4 springmvc.xml配置CommonsMultipartResolver。

转载于:https://www.cnblogs.com/hamawep789/p/10923722.html

你可能感兴趣的文章
项目中的积累,及常见小问题
查看>>
Python类型转换、数值操作(收藏)
查看>>
oracle11g dataguard 安装手册(转)
查看>>
java并发包分析之———Deque和LinkedBlockingDeque
查看>>
1. Two Sum - Easy - Leetcode解题报告
查看>>
多线程---同步函数的锁是this(转载)
查看>>
鱼C记事本V1.0(下)- 零基础入门学习Delphi28
查看>>
百练 2742 统计字符数 解题报告
查看>>
Ubuntu搜狗输入法候选词乱码
查看>>
js中回调函数写法
查看>>
React native android 最常见的10个问题
查看>>
数据结构和算法
查看>>
.Net 项目代码风格要求
查看>>
[pat]1045 Favorite Color Stripe
查看>>
Immutable学习及 React 中的实践
查看>>
【转】性能测试步骤
查看>>
OSI与TCP/IP各层的结构与功能,都有哪些协议
查看>>
Android实例-程序切换到后台及从后台切换到前台
查看>>
spring boot启动定时任务
查看>>
[转]html5 Canvas画图教程(6)—canvas里画曲线之arcTo方法
查看>>