`

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.getElementById("filelist").appendChild(fileName);
document.getElementById("filebutton").appendChild(fileNewInput)
obj.style.display="none";
i = i + 1;
}
}
function delFile(obj){
document.getElementById("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