`
Jeenry119
  • 浏览: 70329 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Spring2文件上传实例

阅读更多
web.xml文件内容:

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
<servlet>
  <servlet-name>spring-action</servlet-name>
  <servlet-class>
   org.springframework.web.servlet.DispatcherServlet
  </servlet-class>
  <load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
  <servlet-name>spring-action</servlet-name>
  <url-pattern>*.mhtml</url-pattern>
</servlet-mapping>
<welcome-file-list>
  <welcome-file>testuploadfile.jsp</welcome-file>
</welcome-file-list>
</web-app>
spring-action-servlet.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"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd">
<!--
使用Spring已集成的Commons FileUpload上传组件。
1.为了让DispatcherServlet处理MultipartRequest,
在Spring配置文件中声明一个MultipartResolver。
这样一旦某个Request是一个MultipartRequest,
它就会首先被MultipartResolver处理,然后再转发到相应的Controller。
-->
<bean id="multipartResolver"
  class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
  <!-- set the max upload size10MB -->
  <property name="maxUploadSize">
   <value>10485760</value>
  </property>
</bean>
<!--
2.配置一个Controller,来处理上传的文件。
-->
<bean name="fileUploadController" autowire-candidate="false"
  class="test.web.controller.uploadfile.FileUploadController">
  <property name="commandClass" value="java.lang.Object" />
  <!-- 上传失败时跳转页面 -->
  <property name="formView" value="/user/err.jsp" />
  <!-- 上传成功时跳转页面 -->
  <property name="successView"
   value="redirect:/testuploadfile.jsp" />
  <property name="uploadDir" value="c:/testUploadFile/" />
</bean>
<!--
3.配置一个URL映射控制器,直接将URL映射到相应的控制器处理。
-->
<bean id="urlMapping"
  class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
  <property name="mappings">
   <props>
    <prop key="/testuploadfile.mhtml">
     fileUploadController
    </prop>
   </props>
  </property>
</bean>
<!--
4.配置一个视图解析器,将逻辑视图名解析为一个用模板文件(如JSP或Velocity模板)渲染的视图对象。
-->
<bean id="viewResolver"
  class="org.springframework.web.servlet.view.InternalResourceViewResolver">
  <property name="requestContextAttribute" value="rc" />
  <property name="viewClass"
   value="org.springframework.web.servlet.view.JstlView" />
  <property name="prefix" value="" />
  <property name="suffix" value=".jsp" />
</bean>
</beans>

FileUploadController.java文件内容:

package test.web.controller.uploadfile;

import java.io.File;
import java.util.Iterator;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.springframework.validation.BindException;
import org.springframework.web.multipart.MultipartFile;
import org.springframework.web.multipart.MultipartHttpServletRequest;
import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.mvc.SimpleFormController;

public class FileUploadController extends SimpleFormController {
private String uploadDir;//上传文件路径
public void setUploadDir(String uploadDir) {
  this.uploadDir = uploadDir;
}
public String getUploadDir() {
  return this.uploadDir;
}
protected ModelAndView onSubmit(HttpServletRequest request,
   HttpServletResponse response, Object cmd, BindException errors)
   throws Exception {
  uploadFile(request);
  return new ModelAndView(getSuccessView());
}
private void uploadFile(HttpServletRequest request) {
  // 转型为MultipartHttpRequest:
  MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request;
  // 遍历所有文件域,获得上传的文件
  for (Iterator it = multipartRequest.getFileNames(); it.hasNext();) {
   String key = (String) it.next();
   MultipartFile file = multipartRequest.getFile(key);
   saveFile(file);
  }
}
private void saveFile(MultipartFile file) {
  if (file == null || file.isEmpty())
   return;
  String filename = file.getOriginalFilename();
  String localfileName = uploadDir + filename;
  // 写入文件
  File source = new File(localfileName.toString());
  try {
   file.transferTo(source);
  } catch (Exception e) {
   e.printStackTrace();
  }
}
}

testuploadfile.jsp文件内容:

<%@ page language="java" contentType="text/html; charset=UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
  <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  <title>Insert title here</title>
  <style>
   .addAttachFileUrl{
    position: relative;
    font-size: 12px;
   }
   .file {
    position: absolute;
    width: 1px;
    left: -3px;
    filter: Alpha(opacity=0);
    cursor: hand;
    top: -3px;
   }
   .filelistItem {
    display: block;
    background: #ffffcc;
    font: "宋体";
    font-size: 12px;
   }
  </style>
  <script type="text/javascript">
    var i=1;
    //文件上传
    var attachname = "attach_";
    function addFile(obj){
     if(obj.value.length>0){
      var fileNewInput = document.createElement("<input type='file' name='"+
      attachname + i + "' class='file' onchange='addFile(this)'/>");
      var fileName = document.createElement("span");
      fileName.className = "filelistItem";
      fileName.innerHTML = obj.value+
      "&nbsp;&nbsp;<a href='javascript:void(0)' onclick='delFile(this)'>删除</a>";
      fileName.appendChild(obj);
      document.getElementByIdx("filelist").appendChild(fileName);
      document.getElementByIdx("filebutton").appendChild(fileNewInput)
      obj.style.display="none";
      i = i + 1;
     }
    }
    function delFile(obj){
     document.getElementByIdx("filelist").removeChild(obj.parentNode)
    }
     </script>
</head>
<body>
  <FORM id="myForm" method="POST" enctype="multipart/form-data"
  action="testuploadfile.mhtml">
   上传附件:
   <div id="filelist"></div>
   <br />
   <a class="addAttachFileUrl" href="javascript:void(0)" id="filebutton">点击添加附件
    <input type="file" name="file_0" class="file"
     onchange="addFile(this)" /> </a>
   <br />
   <input type="submit" value="提交">
  </FORM>
</body>
</html>

以上程序调试通过!
分享到:
评论

相关推荐

    spring boot 文件上传实例

    在本实例中,我们将探讨如何在Spring Boot中实现一个简单的文件上传功能。 首先,我们需要在Spring Boot项目中添加必要的依赖。在`pom.xml`文件中,确保已经包含了`spring-boot-starter-web`依赖,因为文件上传功能...

    spring 文件上传实例

    本实例将深入探讨如何在Java Spring中实现文件上传,并提供一个完整的配置示例。文件上传在现代Web应用中有着广泛的应用,如用户头像上传、文档共享、图片库等。 首先,让我们了解一下Spring中的文件上传工作原理。...

    springcloud处理文件上传

    本话题主要探讨如何在Spring Cloud环境中处理文件上传,特别是在结合Feign和Zuul这两个组件时的实现方法。Feign是Spring Cloud的一个声明式HTTP客户端,用于简化服务间的调用;而Zuul则是作为API网关,提供路由、...

    SpringMVC文件上传,多文件上传实例

    在这个“SpringMVC文件上传,多文件上传实例”中,我们将深入探讨如何在SpringMVC环境中实现文件上传功能,包括单个文件上传以及多个文件的批量上传。 1. **文件上传原理**: 文件上传是通过HTTP协议的POST请求来...

    java文件上传实例

    在这个“java文件上传实例”中,我们将深入探讨如何实现这一功能,并结合拦截器来增强上传的安全性和可控性。文件上传的流程通常包括前端页面的构建、后端接口的设计以及中间件的处理,而拦截器则可以用来进行权限...

    spring mvc文件上传下载实例

    这篇博客“spring mvc文件上传下载实例”将引导我们如何在Spring MVC项目中实现这两个功能。 首先,我们需要理解Spring MVC的基本概念。Spring MVC是Spring框架的一个模块,它提供了处理HTTP请求并返回响应的能力,...

    springMVC 与文件 上传 下载 实例

    在Spring MVC框架中,文件上传和下载是常见的需求,尤其在构建Web应用程序时。下面将详细阐述如何使用Spring MVC实现这些功能,以及如何添加文件压缩的特性。 首先,我们需要了解Spring MVC中的MultipartFile接口,...

    jersey+spring实例代码(包括文件上传)

    【标题】"jersey+spring实例代码(包括文件上传)"所涉及的知识点主要集中在使用Jersey作为RESTful服务框架与Spring框架集成,并实现文件上传功能。让我们深入了解一下这两个技术及其在实际项目中的应用。 **Jersey**...

    struts+spring上传图片实例

    接着,Struts2的Action类接收到请求,处理文件上传的数据。 2. **Struts2文件上传支持**:Struts2提供了FileUpload interceptor,它可以处理multipart/form-data类型的请求,这是上传文件时必须的HTTP头。需要在...

    springboot 实现超大文件上传实例

    这个实例不仅可以帮助开发者掌握SpringBoot的文件上传功能,还涉及到了数据库操作、前后端交互等多方面的知识。在实际项目中,还可以进一步优化,例如使用分布式文件系统(如HDFS或对象存储)来存储大文件,提高系统...

    ssh2(struts2+spring2.5+hibernate3.3+ajax)带进度条文件上传(封装成标签)

    标题 "ssh2(struts2+spring2.5+hibernate3.3+ajax)带进度条文件上传(封装成标签)" 涉及到的是一个基于Java Web的项目,利用了Struts2、Spring2.5、Hibernate3.3和Ajax技术,实现了文件上传并带有进度条显示的功能...

    spring mvc uploadify上传文件

    在本文中,我们将深入探讨如何使用Spring MVC框架与uploadify插件进行文件上传,特别是针对图片的上传。Spring MVC是Spring框架的一部分,专门用于构建Web应用程序,而uploadify是一款前端JavaScript插件,使得用户...

    Spring文件上传和下载所需的jar包.rar

    在Spring框架中,文件上传和下载是常见的功能需求,尤其在构建Web应用程序时。为了实现这一功能,开发者通常会依赖一些外部库,如Apache Commons IO和Apache Commons FileUpload。这两个库提供了强大的文件处理能力...

    基于SpringBoot结合分布式文件系统FastDFS实现的文件上传实例demo,可拿来直接嵌入到自己的系统中

    基于SpringBoot结合分布式文件系统FastDFS实现的文件上传实例demo,可拿来直接嵌入到自己的系统中 文件上传后的路径: group1/M00/00/43/wKgCYVwhkTOAUxZ1AGf8LohRDBw966.jpg 解读: 一、组名:文件上传后所在...

    ssh2文件上传和下载实例

    SSH2文件上传和下载是基于Java的SSH (Spring、Struts2、Hibernate) 框架实现的一种功能,常用于Web应用中处理用户文件的交互。在这个实例中,我们将深入探讨如何利用Struts2框架与SSH2框架集成,实现大文件(最大2GB...

    struts+spring+hibernate(mysql)用户登录及文件上传

    Struts、Spring 和 Hibernate 是Java Web开发中的三大框架,它们结合使用可以构建高效、模块化的应用程序,特别是对于处理用户登录和文件上传等常见功能。在这个项目中,"struts+spring+hibernate(mysql)用户登录及...

    MYECLIPSE AXIS2 + SPRING 文件上传

    SPRING框架则为AXIS2提供了良好的集成,使得我们可以利用SPRING的依赖注入特性来管理AXIS2的服务实例,以及处理文件上传后的业务逻辑。SPRING的AOP(面向切面编程)功能也可以用来实现文件上传的事务管理和权限控制...

    非注解Springmvc+spring+hibernate 入门实例

    总的来说,这个入门实例旨在帮助初学者理解如何在没有使用注解的情况下,通过XML配置文件集成SpringMVC、Spring和Hibernate,完成一个简单的Web应用。虽然现在的最佳实践倾向于使用注解和Spring Boot,但理解非注解...

    多文件上传实例

    "多文件上传实例"就是一个针对这种需求的解决方案,尤其适合集成到使用SSH(Struts2、Spring、Hibernate)框架的项目中。SSH框架是Java Web开发中的常用组合,提供了模型-视图-控制器(MVC)架构,使得应用程序的...

    基于Struts+hibernate+spring+Html5+Mysql支持多文件上传实例

    本实例是一个基于Struts2、Hibernate、Spring和HTML5技术的综合应用,利用MySQL数据库存储文件信息,为用户提供了一个高效且用户友好的多文件上传解决方案。下面将详细阐述这个实例中的各个关键知识点。 首先,**...

Global site tag (gtag.js) - Google Analytics