1. 程式人生 > 程式設計 >通過簡單步驟實現SpringMVC檔案上傳

通過簡單步驟實現SpringMVC檔案上傳

這篇文章主要介紹了通過簡單步驟實現SpringMVC檔案上傳,文中通過示例程式碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下

一、建立檔案上傳FileController類

package com.byzore.controller;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.multipart.MultipartFile;

import javax.servlet.http.HttpSession;
import java.io.File;
import java.io.IOException;

@Controller
@RequestMapping("/file")
public class FileController {
  @RequestMapping("/fileUpload")
  /**
   * MultipartFile 選擇檔案
   */
  public String fileupload(HttpSession session,MultipartFile file,String author)throws IOException{
    System.out.println("作者:"+author);
    System.out.println(file);
    /**
     * 如何處理檔案
     */
    if (!file.isEmpty()){
      //獲取檔名稱
      String fileName=file.getOriginalFilename();
      //獲取到需要上傳的路徑
      String realPath = session.getServletContext().getRealPath("/WEB-INF/upload");
      //建立檔案物件
      File uploadfile=new File(realPath+"\\"+fileName);
      //如何上傳檔案
      file.transferTo(uploadfile);
    }
    return "index";
  }



  @RequestMapping("/fileUploads")
  /**
   * 多檔案上傳
   */
  public String fileuploads(HttpSession session,MultipartFile[] uploadFiles,String author)throws IOException{
    System.out.println("作者:"+author);
    System.out.println(uploadFiles);
    for (MultipartFile file: uploadFiles) {
      /**
       * 如何處理檔案
       */
      if (!file.isEmpty()){
        //獲取檔名稱
        String fileName=file.getOriginalFilename();
        //獲取到需要上傳的路徑
        String realPath = session.getServletContext().getRealPath("/WEB-INF/upload");
        //建立檔案物件
        File uploadfile=new File(realPath+"\\"+fileName);
        //如何上傳檔案
        file.transferTo(uploadfile);
      }
    }

    return "index";
  }
}

二、編輯applicationContext.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:aop="http://www.springframework.org/schema/aop"
      xmlns:context="http://www.springframework.org/schema/context"
      xmlns:mvc="http://www.springframework.org/schema/mvc"
      xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc.xsd">
    <!--將Controller注入到容器當中  id就是瀏覽器請求地址-->
    <!--<bean id="/firstController" class="com.springmvc.controller.FirstController"></bean>-->

    <!--配置包掃描器-->
    <context:component-scan base-package="com.byzore"/>
    <!--Spring支援SpringMVC-->
    <mvc:annotation-driven/>

  <!--配置檢視解析器-->
  <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
    <property name="prefix" value="/"/>
    <property name="suffix" value=".jsp"/>
  </bean>

  <!--利用DefaultServlet放行資源-->
  <mvc:default-servlet-handler/>

  <!--從Spring3.0.4版本提供資源放行的方式-->
  <!--<mvc:resources mapping="/**" location="/img"/>-->
<!--檔案上傳解析器-->
  <bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
    <!--編碼-->
    <property name="defaultEncoding" value="UTF-8"/>
    <property name="maxUploadSize" value="5000000000"/>
  </bean>
</beans>

三、建立fileUpload.jsp頁面

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
  <title>檔案上傳</title>
</head>
<body>
  <form action="/file/fileUpload" method="post" enctype="multipart/form-data">
    <input type="file" name="fileUpload"/>
作者:<input type="text" name="author"/>
    <input type="submit" value="提交"/>
  </form>
</body>
</html>

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支援我們。