Springmvc文件上传

其实springmvc的上传很简单,做一下笔记哈

首先引入jar包commons-fileupload.jar和commons-logging-1.1.jar,我这里都有http://download.csdn.net/detail/maxldwy/8248531

然后spring配置文件里加入:

<!-- 处理文件上传 -->
	<bean id="multipartResolver"
		class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
		<property name="defaultEncoding" value="utf-8" /> <!-- 默认编码 (ISO-8859-1) -->
		<property name="maxInMemorySize" value="10240" /> <!-- 最大内存大小 (10240)-->
		<property name="uploadTempDir" value="/tmp/" /> <!-- 上传后的临时文件目录) -->
		<property name="maxUploadSize" value="-1" /> <!-- 最大文件大小,-1为无限止(-1) -->
	</bean> 
接着jsp:

<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
	<head>
		<title>测试springmvc中上传的实现</title>
	</head>
	<body>
<form action="upload"  method="post" enctype="multipart/form-data">
			<input type="text" name="name" />
			<input type="file" name="file" />
			<input type="submit" />
		</form>
	</body>
</html>
最后编写controller:

package com.wy.controller;

import java.io.File;
import java.util.Date;

import javax.servlet.ServletContext;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.context.ServletContextAware;
import org.springframework.web.multipart.commons.CommonsMultipartFile;
import org.springframework.web.servlet.ModelAndView;

@Controller
public class FileUploadController implements ServletContextAware {

	private ServletContext servletContext;
	
	public void setServletContext(ServletContext context) {
		this.servletContext  = context;
	}
	
	//也可以不在class上面配置@RequestMapping,直接在方法上配置,这样就直接拦截/url到方法
	@RequestMapping("/gotoupload") 
    public ModelAndView upload(){  
		ModelAndView mav = new ModelAndView();
        mav.setViewName("DiseasePage/Upload");
		return mav;
    } 
	
	@RequestMapping(value="/upload", method = RequestMethod.POST)//post请求才能到这里
	public String handleUploadData(String name,@RequestParam("file") CommonsMultipartFile file){
		//@RequestParam("file")@RequestParam("file")上传必须写
		if (!file.isEmpty()) {
			   String path = this.servletContext.getRealPath("/uploadFile/");  //获取本地路径
			   System.out.println(path);
			   String fileName = file.getOriginalFilename();
			   String fileType = fileName.substring(fileName.lastIndexOf("."));//获得类型
			   System.out.println(fileType); 
			   File file2 = new File(path,new Date().getTime() + fileType); //新建一个文件
			   try {
				    file.getFileItem().write(file2); //将上传文件写入文件夹中
			   } catch (Exception e) {
				    e.printStackTrace();
			   }
			   return "DiseasePage/Upload_ok";
			}else{
				return "redirect:404.jsp";
			}
	}
}
对了,在工程中建立tmp和UploadFile俩个文件夹就可以实现啦~~~



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值