springMVC文件上传

使用springMVC实现文件的上传功能

1. 我们需要引入两个jar包:

              1.1 apache-commons-fileupload.jar

              1.2 apache-commons-io.j    

2. 在springmvc-servlet.xml配置文件中,增加CommonsMultipartResoler配置:

<!-- 处理文件上传 -->

<bean id="multipartResolver" 

    class="org.springframework.web.multipart.commons.CommonsMultipartResolver" > 

    <property name="defaultEncoding" value="gbk"/> <!-- 默认编码 (ISO-8859-1) --> 

    <property name="maxInMemorySize" value="10240"/> <!-- 最大内存大小 (10240)--> 

    <property name="uploadTempDir" value="/upload/"/> <!-- 上传后的目录名 (WebUtils#TEMP_DIR_CONTEXT_ATTRIBUTE) --> 

    <property name="maxUploadSize" value="-1"/> <!-- 最大文件大小,-1为无限止(-1) --> 

</bean>


3.  建立upload.jsp页面,内容如下:

<%@ page language="java" import="java.util.*" pageEncoding="gbk"%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<html>

    <head>

       <title>测试springmvc中上传的实现</title>

    </head>

    <body>

<form action="upload.do"  method="post" enctype="multipart/form-data">

           <input type="text" name="name" />

           <input type="file" name="file" />

           <input type="submit" />

       </form>

    </body>

</html>


4. 建立控制器,代码如下:

package com.sxt.web;

 

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;

 

@Controller

public class FileUploadController implements ServletContextAware {

 

         private ServletContext servletContext;

        

         @Override

         public void setServletContext(ServletContext context) {

                   this.servletContext  = context;

         }

        

         @RequestMapping(value="/upload.do", method = RequestMethod.POST)

 

         public String handleUploadData(String name,@RequestParam("file") CommonsMultipartFile file){

                   if (!file.isEmpty()) {

                               String path = this.servletContext.getRealPath("/tmp/");  //获取本地存储路径

                               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 "redirect:upload_ok.jsp";

                            }else{

                                     return "redirect:upload_error.jsp";

                            }

         }

}



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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值