返回顶部

收藏

使用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

标签:java

收藏

0人收藏

支持

0

反对

0

发表评论