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+
" <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>
以上程序调试通过!
分享到:
相关推荐
java spring 文件上传实例,包含了完整的 spring 文件上传配置
上传文件是互联网中常常应用的场景之一,最典型的情况就是上传头像等,今天就带着带着大家做一个Spring Boot上传文件的小案例。
用springMVC 实现文件的上传、下载,含文件的压缩功能。
在上一篇SpringMVC基础教程的源码基础上增加了文件上传,多文件上传
基于SpringBoot结合分布式文件系统FastDFS实现的文件上传实例demo,可拿来直接嵌入到自己的系统中 文件上传后的路径: group1/M00/00/43/wKgCYVwhkTOAUxZ1AGf8LohRDBw966.jpg 解读: 一、组名:文件上传后所在...
基于 springboot sqlserver 的 大文件上传实例
NULL 博文链接:https://yizhaorong.iteye.com/blog/1825450
jersery+spring+mybati后台代码,无前端代码。包括增、删、改、查、和文件的上传。
本篇文章主要介绍了Spring boot实现文件上传实例(多文件上传),具有一定的参考价值,感兴趣的小伙伴们可以参考一下
基于Struts+hibernate+spring+jsp(Html5)+Mysql支持多文件上传实例,有整个SSH框架的整合,从前台上传文件到文件信息存入数据库和服务器的文件系统。
关于ajaxfileupload 文件上传实例,包括spring mvc 下后台接受上传请求时的处理代码。但目前是不完整的,未完待续...
spring boot多文件上传、单文件上传、Excel解析源码 项目描述 极简文件上传下载实例;springboot 单文件上传、多文件上传、Excel文件上传解析、Excel文件下载; 运行环境 jdk8+tomcat9+IntelliJ IDEA+maven 项目...
springMVC+uploadify上传图片。
在本篇文章里小编给大家分享的是关于Spring Boot 文件上传简易教程以及相关知识点,需要的朋友们参考下。
主要介绍了Spring mvc文件上传下载代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
spring mvc+bootstrap实现文件的上传实例,文件可拖拽选择和多选。
主要介绍了Spring MVC中上传文件实例,本文给出配置、HTML、后端等的处理代码,需要的朋友可以参考下
本篇文章主要介绍了Spring MVC 文件上传下载的实例,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
这个jar文件包含Web应用开发时,用到Spring框架时所需的核心类,包括自动载入WebApplicationContext特性的类、Struts与JSF集成类、文件上传的支持类、Filter类和大量工具辅助类。 (12) spring-webmvc.jar 这个...
本实例依托于springmvc框架,采用maven作为jar包管理仓库,通过引用hadoop相关jar包,编写了hdfs操作工具类,能够在web端实现文件远程上传至hdfs。