所需 jar包
commons-fileupload-1.3.2.jar commons-io-2.5.jar
web.xml加入
<servlet>
<servlet-name>spring</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>spring</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
<servlet-name>spring</servlet-name>
是spring-servlet.xml的前缀
spring-servlet.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:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-2.5.xsd">
<context:component-scan base-package="com.yzk" />
<bean
class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/" />
<property name="suffix" value=".jsp" />
</bean>
<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
<property name="defaultEncoding" value="utf-8"></property>
<property name="maxUploadSize" value="10485760000"></property>
<property name="maxInMemorySize" value="40960"></property>
</bean>
</beans>
UplodaFIleController.java
package com.yzk.springmvc;
import java.io.File;
import java.io.IOException;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.multipart.commons.CommonsMultipartFile;
import com.yzk.springmvc.util.FileUtil;
@Controller
@RequestMapping("/upload")
public class UploadController {
@RequestMapping("/file")
public String addUser(@RequestParam("myfile") CommonsMultipartFile files) {
File file = new File("/Users/yzk/works/Demo/" + files.getOriginalFilename());
try {
FileUtil.copeFile(files, file);
} catch (IOException e) {
System.out.println("上传出错");
}
return "success";
}
}
工具类 FileUtil.java
package com.yzk.springmvc.util;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import org.springframework.web.multipart.commons.CommonsMultipartFile;
public class FileUtil {
public static void copeFile(CommonsMultipartFile files,File file) throws IOException {
if (!files.isEmpty()) {
try {
// 拿到输出流,同时重命名上传的文件
FileOutputStream os = new FileOutputStream(file);
// 拿到上传文件的输入流
FileInputStream in = (FileInputStream) files.getInputStream();
// 以写字节的方式写文件
int b = 0;
while ((b = in.read()) != -1) {
os.write(b);
}
os.flush();
os.close();
in.close();
} catch (Exception e) {
e.printStackTrace();
System.out.println("上传出错");
}
}
}
}
uploadfile.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<script type="text/javascript" src="../js/jquery-1.7.2.js"></script>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
<h1>springMVC字节流输入上传文件</h1>
<form name="userForm1"
action="<%=request.getContextPath()%>/up
load/file.do"
enctype="multipart/form-data" method="post">
<div id="newUpload1">
<input type="file" name="myfile">
</div>
<input type="button" id="btn_add1" value="增加一行"> <input
type="submit" value="上传">
</form>
</body>
</html>