spring支持在网络应用程序处理文件上传,提供拔插的org.springframework.web.multipart.MultipartResolver对象 。
在写上传文件的前提下需提供两个jar包:
1.添加上传拦截,可指定上传的大小
- <!-- 上传拦截,如最大上传值及最小上传值 -->
- <bean id="multipartResolver"
- class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
- <!-- one of the properties available; the maximum file size in bytes -->
- <property name="maxUploadSize" value="100000" />
- </bean>
2.添加java后台处理的API
- @RequestMapping(value = "/form", method = RequestMethod.POST)
- public String handleFormUpload(@RequestParam("name") String name,
- @RequestParam("file") MultipartFile file) {
- if (!file.isEmpty()) {
- byte[] bytes = file.getBytes();
-
-
- }
具体文件
spring_mvc.xml
- <?xml version="1.0" encoding="UTF-8"?>
- <beans xmlns="http://www.springframework.org/schema/beans"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xmlns:p="http://www.springframework.org/schema/p"
- xmlns:context="http://www.springframework.org/schema/context"
- xsi:schemaLocation="
- http://www.springframework.org/schema/beans
- http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
- http://www.springframework.org/schema/context
- http://www.springframework.org/schema/context/spring-context-3.0.xsd">
-
- <context:component-scan base-package="org.spring.mvc" />
- <bean
- class="org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping" />
-
- <bean
- class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter" />
-
-
- <bean id="viewResolver"
- class="org.springframework.web.servlet.view.InternalResourceViewResolver">
- <property name="viewClass"
- value="org.springframework.web.servlet.view.JstlView" />
- <property name="prefix" value="/" />
- <property name="suffix" value=".jsp"></property>
- </bean>
-
-
- <bean id="multipartResolver"
- class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
-
- <property name="maxUploadSize" value="100000" />
- </bean>
-
- </beans>
FileUploadController.java文件
- package org.spring.mvc.upload;
-
- import java.io.FileOutputStream;
- import java.io.IOException;
- import java.io.InputStream;
- import java.util.List;
-
- import org.slf4j.Logger;
- import org.slf4j.LoggerFactory;
- import org.spring.mvc.HelloWorldController;
- 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;
- import org.springframework.web.multipart.MultipartHttpServletRequest;
-
-
-
-
-
-
- @Controller
- @RequestMapping(value = "/toFileUpload")
- public class FileUploadController {
- private Logger logger = LoggerFactory.getLogger(HelloWorldController.class);
-
-
-
-
-
-
-
-
- @RequestMapping(value = "/oneFileUpload", method = RequestMethod.POST)
- public String handleFormUpload(@RequestParam("name")
- String name, @RequestParam("file")
- MultipartFile file) throws IOException {
-
- logger.info("name:"+name);
- logger.info("上传文件:"+file.getOriginalFilename());
- if (!file.isEmpty()) {
- this.copyFile(file.getInputStream(), file.getOriginalFilename());
-
- }
- return "fileUpload/success";
- }
-
-
-
-
-
-
-
-
- @RequestMapping(value = "/multipartFileUpload",method = RequestMethod.POST)
- public String upload2(
- MultipartHttpServletRequest request ,
- @RequestParam("name") String name
- ) throws Exception {
- List<MultipartFile> files = request.getFiles("file");
- for( int i=0; i<files.size() ;i++){
- if(! files.get(i).isEmpty()) {
- logger.info("上传文件:"+files.get(i).getOriginalFilename());
- this.copyFile(files.get(i).getInputStream(), files.get(i).getOriginalFilename());
- }
- }
- logger.info("success");
- return "fileUpload/success";
- }
-
-
-
-
-
-
-
- private void copyFile(InputStream in,String fileName) throws IOException{
- FileOutputStream fs = new FileOutputStream("d:/upload/"
- + fileName);
- byte[] buffer = new byte[1024 * 1024];
- int bytesum = 0;
- int byteread = 0;
- while ((byteread = in.read(buffer)) != -1) {
- bytesum += byteread;
- fs.write(buffer, 0, byteread);
- fs.flush();
- }
- fs.close();
- in.close();
- }
-
-
- }
单文件上传页面oneFileUpload.jsp
- <%@ page language="java" import="java.util.*" pageEncoding="GBK"%>
- <%
- String path = request.getContextPath();
- String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
- %>
-
- <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
- <html>
- <head>
- <base href="<%=basePath%>">
-
- <title>My JSP 'oneFileUpload.jsp' starting page</title>
-
- <meta http-equiv="pragma" content="no-cache">
- <meta http-equiv="cache-control" content="no-cache">
- <meta http-equiv="expires" content="0">
- <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
- <meta http-equiv="description" content="This is my page">
- <!--
- <link rel="stylesheet" type="text/css" href="styles.css">
- -->
-
- </head>
-
- <body>
- This is my onefileUpload page. <br>
- <form method="POST" action="toFileUpload/oneFileUpload" enctype="multipart/form-data">
- <input type="text" name="name"/>
- <input type="file" name="file"/>
- <input type="submit"/>
- </form>
- </body>
- </html>
多文件上传页面multipartFileUpload.jsp
- <%@ page language="java" import="java.util.*" pageEncoding="GBK"%>
- <%
- String path = request.getContextPath();
- String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
- %>
-
- <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
- <html>
- <head>
- <base href="<%=basePath%>">
-
- <title>My JSP 'multipartFileUpload.jsp' starting page</title>
-
- <meta http-equiv="pragma" content="no-cache">
- <meta http-equiv="cache-control" content="no-cache">
- <meta http-equiv="expires" content="0">
- <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
- <meta http-equiv="description" content="This is my page">
- <!--
- <link rel="stylesheet" type="text/css" href="styles.css">
- -->
-
- </head>
-
- <body>
- This is multipartFileUpload page. <br>
- <form method="POST" action="toFileUpload/multipartFileUpload" enctype="multipart/form-data">
- <input type="text" name="name"/><br>
- <input type="file" name="file"/><br>
- <input type="file" name="file"/><br>
- <input type="submit"/><br>
- </form>
- </body>
- </html>
分享到:
相关推荐
Spring3 MVC 学习笔记 入门 Spring3 MVC 学习笔记 入门
spring mvc学习笔记spring mvc学习笔记spring mvc学习笔记spring mvc学习笔记spring mvc学习笔记
spring mvc学习笔记,包括学习遇到的问题和解决方法。
传智播客 Spring MVC 学习笔记
spring mvc的学习笔记,主要讲解了基于xml的配置,和如何增加spring mvc拦截器,如何返回json报文
这是个人的Spring MVC的MD版学习笔记+源码文件,具体参考:https://blog.csdn.net/m0_46153949/article/details/114260215
基于注解的spring_3.0.x_MVC学习笔记
自己学习spring课程的笔记。笔记都是根据尚硅谷的课程(spring ioc,spring aop,spring mvc,spring boot等)写的。 主要内容:spring ioc,spring aop,spring mvc,spring boot
工程文件 博文链接:https://starscream.iteye.com/blog/1067606
NULL 博文链接:https://starscream.iteye.com/blog/1072180
sample code 博文链接:https://starscream.iteye.com/blog/1057305
工程文件 博文链接:https://starscream.iteye.com/blog/1072179
Spring MVC 3学习笔记+教程 这是一个学习spring mvc设计模式很好的参考文档,希望大家可以从中学到东西
学习mybatis、spring、mvc、springboot的笔记