使用SpringMVC上传文件详解编程语言

package com.foo.controller; 
 
import java.io.File; 
import java.io.IOException; 
import java.text.SimpleDateFormat; 
import java.util.Date; 
import javax.servlet.http.HttpServletRequest; 
import javax.servlet.http.HttpServletResponse; 
 
import org.springframework.stereotype.Controller; 
import org.springframework.web.bind.annotation.RequestMapping; 
import org.springframework.web.multipart.MultipartFile; 
import org.springframework.web.multipart.MultipartHttpServletRequest; 
 
@Controller 
@RequestMapping(value="/file") 
public class FileUpload{ 
	 
	@RequestMapping(value="/gotofilepage") 
	public String gotofilepage(){ 
		System.out.println("进入到file中的gotofilepage方法中。。。。"); 
		 
		return "uploadfile"; 
	} 
	 
	@RequestMapping(value="/fileupload") 
	public void fileUpload(HttpServletRequest request, 
			HttpServletResponse response) { 
 
		MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request; 
		SimpleDateFormat dateformat = new SimpleDateFormat("yyyy/MM/dd/HH"); 
		/** 得到图片保存目录的真实路径 **/ 
		String realpath = request.getSession().getServletContext().getRealPath("/"); 
		/** 构建图片保存的目录 **/ 
		String filedir ="files" + File.separator 
				+ dateformat.format(new Date()); 
		String filelocationdir = realpath + filedir; 
		/** 根据真实路径创建目录 **/ 
		File logoSaveFile = new File(filelocationdir); 
		if (!logoSaveFile.exists()) 
			logoSaveFile.mkdirs(); 
		/** 页面控件的文件流 **/ 
		MultipartFile multipartFile = multipartRequest.getFile("file"); 
		/** 获取文件的后缀,防止别人传可执行文件 **/ 
		String suffix = multipartFile.getOriginalFilename().substring( 
				multipartFile.getOriginalFilename().lastIndexOf(".")); 
 
		String imagename = multipartFile.getOriginalFilename(); 
		/** 拼成完整的文件保存路径加文件 **/ 
		String filename = filelocationdir + File.separator + imagename; 
		File file = new File(filename); 
 
		try { 
			multipartFile.transferTo(file); 
		} catch (IllegalStateException e) { 
			e.printStackTrace(); 
		} catch (IOException e) { 
			e.printStackTrace(); 
		} 
	} 
 
}

uploadfile.jsp

<body> 
<h1>文件上传</h1> 
<form action="./fileupload.action" method="post" enctype="multipart/form-data">			 
<input type="file" name="file" /> 
<input type="submit" value="upload" /> 
</form> 
</body>

springmvc-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" xmlns:mvc="http://www.springframework.org/schema/mvc" 
	xmlns:context="http://www.springframework.org/schema/context" 
	xmlns:tx="http://www.springframework.org/schema/tx" 
	xmlns:aop="http://www.springframework.org/schema/aop" 
	xmlns:task="http://www.springframework.org/schema/task"  
	xsi:schemaLocation=" 
        http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd 
        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 
        http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.0.xsd 
        http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd 
        http://www.springframework.org/schema/task http://www.springframework.org/schema/task/spring-task-3.0.xsd"> 
 
	<!-- @Controller, @Service, @Configuration, etc. --> 
	<context:component-scan base-package="com.foo.controller" />	 
	 
	<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"> 
		<property name="prefix" value="/WEB-INF/views/" /> 
		<property name="suffix" value=".jsp" /> 
	</bean> 
	<!-- 上传文件必须加 --> 
	<bean id="multipartResolver" 
		class="org.springframework.web.multipart.commons.CommonsMultipartResolver"> 
		<!-- set the max upload size100MB --> 
		<property name="maxUploadSize"> 
			<value>104857600</value> 
		</property> 
		<property name="maxInMemorySize"> 
			<value>4096</value> 
		</property> 
	</bean> 
<!-- 	<task:annotation-driven/> 
	<bean id="taskTest" class="com.htf.task.MyTask"></bean> 
	<task:scheduled-tasks> 
		  <task:scheduled ref="taskTest" method="say" cron="5/3 * * * * ?" />   
	</task:scheduled-tasks> 
	<context:component-scan base-package="com.htf.task" /> --> 
</beans>

需要jar

springmvc包

commons-io-2.2.jar

commons-fileupload-1.3.1.jar

原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/7989.html

(0)
上一篇 2021年7月18日
下一篇 2021年7月18日

相关推荐

发表回复

登录后才能评论