当前位置: 首页 > java >正文

springmvc实现文件上传

文件上传的准备

导入文件上传的jar包

 <dependency><groupId>commons-fileupload</groupId><artifactId>commons-fileupload</artifactId><version>1.3.1</version></dependency><dependency><groupId>commons-io</groupId><artifactId>commons-io</artifactId><version>2.4</version></dependency>

编写文件上传的JSP页面

 
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head><title>文件上传</title>
</head>
<body>
​<h3>文件上传</h3>
​<form action="/fileupload.do" method="post" enctype="multipart/form-data">选择文件:<input type="file" name="upload" /><br/><input type="submit" value="上传" /></form>
​
</body>
</html>

springmvc传统方式文件上传

配置文件解析器对象 springmvc.xml

 
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"xmlns:mvc="http://www.springframework.org/schema/mvc"xmlns:context="http://www.springframework.org/schema/context"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans.xsdhttp://www.springframework.org/schema/mvchttp://www.springframework.org/schema/mvc/spring-mvc.xsdhttp://www.springframework.org/schema/contexthttp://www.springframework.org/schema/context/spring-context.xsd">
​<!--如果<url-pattern>/</url-pattern>,任何资源都会拦截--><!--配置哪些资源不被拦截<mvc:resources mapping="/js/" location="/js/**" /><mvc:resources mapping="/css/" location="/css/**" /><mvc:resources mapping="/image/" location="/image/**" />-->
​<!--配置了内容,启动Tomcat服务器的时候,就会被加载--><!--配置注解扫描--><context:component-scan base-package="com.qcbyjy" />
​<!--配置视图解析器,进行页面的跳转--><bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver"><!--跳转的页面的路径--><property name="prefix" value="/pages/" /><!--跳转页面的后缀名称--><property name="suffix" value=".jsp" /></bean>
​<!--配置文件上传的解析器组件。id的名称是固定,不能乱写--><bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver"><!--设置上传文件的总大小 8M = 8 * 1024 * 1024 --><property name="maxUploadSize" value="8388608" /></bean>
​<!--让映射器、适配器和处理器生效(默认不配置也是可以的)--><mvc:annotation-driven/>
​
</beans>

springmvc框架提供了MultipartFile对象,该对象表示上传的文件,要求变量名称必须和表单file标签的name属性名称相同。

代码如下:

 
package cn.tx.demo2;
​
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.multipart.MultipartFile;
​
import javax.servlet.http.HttpServletRequest;
import java.io.File;
import java.io.IOException;
import java.util.UUID;
​
/**** 老师* 文件上传*/
@Controller
public class UploadController {
​/*** 文件上传** MultipartFile upload 文件上传解析器对象解析request后,文件上传对象** @return*/@RequestMapping("/fileupload.do")public String upload(MultipartFile upload, HttpServletRequest request) throws IOException {// 把文件上传到哪个位置String realPath = request.getSession().getServletContext().getRealPath("/uploads");// 创建该文件夹File file = new File(realPath);// 判断该文件夹是否存在if(!file.exists()){// 创建文件夹file.mkdirs();}
​// 获取到上传文件的名称String filename = upload.getOriginalFilename();
​// 把文件的名称修改成为一的值 sdfs-csdf-fwer-sdfwString uuid = UUID.randomUUID().toString().replace("-", "").toUpperCase();// 唯一的值filename = uuid+"_"+filename;System.out.println("文件名称:"+filename);
​// 上传文件upload.transferTo(new File(file,filename));
​return "suc";}
​
}
​
http://www.xdnf.cn/news/4875.html

相关文章:

  • [6-1] TIM定时中断 江协科技学习笔记(45个知识点)
  • 布隆过滤器:高效的数据结构与应用详解
  • 通过Linux系统服务管理IoTDB集群的高效方法
  • C语言 第六章 结构体(2)
  • 大数据——Mac环境DataSpell集成Jupyter
  • 2025年5月通信科技领域周报(4.28-5.4):5G-A技术引领峰会通信 卫星通信加速全球化布局
  • 数据库系统概论(七)初识SQL与SQL基本概念
  • 小程序消息订阅的整个实现流程
  • 养生:开启健康生活的钥匙
  • buck和boost总结
  • B站pwn教程笔记-9
  • 使用 React Native实现鸿蒙开发的详细方案
  • 数据结构 集合类与复杂度
  • Windows平台下的Qt发布版程序打包成exe可执行文件(带图标)|Qt|C++
  • SPC:通过对抗性博弈,让LLM左右互搏提升性能
  • 【Linux】swap交换分区管理
  • 特殊版本,官宣永久免费
  • 从入门到深入:Vue.js 学习全攻略
  • C++ 模板方法模式详解与实例
  • 基于多模态大模型的十二指肠穿孔诊疗技术方案
  • NeurIPS 2024 | 工业质检缺陷检测相关论文梳理
  • el-table中合并表格后横向变高样式无效
  • 找不到自定义包出现报错ModuleNotFoundError: No module named
  • 基础编程题目集 6-9 统计个位数字
  • GAMES202-高质量实时渲染(Assignment 3)
  • Python 爬虫之 XPath 元素定位
  • 熔断机制的实战:高并发下怎么优雅“断电”保命?
  • MAE自监督大模型在医学报告生成中的应用
  • windows的rancherDesktop修改镜像源
  • 【kubernetes】通过Sealos 命令行工具一键部署k8s集群