91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Spring Boot實現文件上傳示例代碼

發布時間:2020-08-27 12:31:06 來源:腳本之家 閱讀:143 作者:catoop 欄目:編程語言

使用SpringBoot進行文件上傳的方法和SpringMVC差不多,本文單獨新建一個最簡單的DEMO來說明一下。

主要步驟包括:

1、創建一個springboot項目工程,本例名稱(demo-uploadfile)。

2、配置 pom.xml 依賴。

3、創建和編寫文件上傳的 Controller(包含單文件上傳和多文件上傳)。

4、創建和編寫文件上傳的 HTML 測試頁面。

5、文件上傳相關限制的配置(可選)。

6、運行測試。

項目工程截圖如下:

Spring Boot實現文件上傳示例代碼

文件代碼:

  <dependencies>

    <!-- spring boot web支持 -->
    <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-web</artifactId>
    </dependency>

    <!-- thmleaf模板依賴. -->
    <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-thymeleaf</artifactId>
    </dependency>

    <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-test</artifactId>
      <scope>test</scope>
    </dependency>
  </dependencies>
package com.example.controller;

import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.List;

import javax.servlet.http.HttpServletRequest;

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.bind.annotation.ResponseBody;
import org.springframework.web.multipart.MultipartFile;
import org.springframework.web.multipart.MultipartHttpServletRequest;

/**
 * 文件上傳的Controller
 * 
 * @author 單紅宇(CSDN CATOOP)
 * @create 2017年3月11日
 */
@Controller
public class FileUploadController {

  // 訪問路徑為:http://ip:port/upload
  @RequestMapping(value = "/upload", method = RequestMethod.GET)
  public String upload() {
    return "/fileupload";
  }

  // 訪問路徑為:http://ip:port/upload/batch
  @RequestMapping(value = "/upload/batch", method = RequestMethod.GET)
  public String batchUpload() {
    return "/mutifileupload";
  }

  /**
   * 文件上傳具體實現方法(單文件上傳)
   *
   * @param file
   * @return
   * 
   * @author 單紅宇(CSDN CATOOP)
   * @create 2017年3月11日
   */
  @RequestMapping(value = "/upload", method = RequestMethod.POST)
  @ResponseBody
  public String upload(@RequestParam("file") MultipartFile file) {
    if (!file.isEmpty()) {
      try {
        // 這里只是簡單例子,文件直接輸出到項目路徑下。
        // 實際項目中,文件需要輸出到指定位置,需要在增加代碼處理。
        // 還有關于文件格式限制、文件大小限制,詳見:中配置。
        BufferedOutputStream out = new BufferedOutputStream(
            new FileOutputStream(new File(file.getOriginalFilename())));
        out.write(file.getBytes());
        out.flush();
        out.close();
      } catch (FileNotFoundException e) {
        e.printStackTrace();
        return "上傳失敗," + e.getMessage();
      } catch (IOException e) {
        e.printStackTrace();
        return "上傳失敗," + e.getMessage();
      }
      return "上傳成功";
    } else {
      return "上傳失敗,因為文件是空的.";
    }
  }

  /**
   * 多文件上傳 主要是使用了MultipartHttpServletRequest和MultipartFile
   *
   * @param request
   * @return
   * 
   * @author 單紅宇(CSDN CATOOP)
   * @create 2017年3月11日
   */
  @RequestMapping(value = "/upload/batch", method = RequestMethod.POST)
  public @ResponseBody String batchUpload(HttpServletRequest request) {
    List<MultipartFile> files = ((MultipartHttpServletRequest) request).getFiles("file");
    MultipartFile file = null;
    BufferedOutputStream stream = null;
    for (int i = 0; i < files.size(); ++i) {
      file = files.get(i);
      if (!file.isEmpty()) {
        try {
          byte[] bytes = file.getBytes();
          stream = new BufferedOutputStream(new FileOutputStream(new File(file.getOriginalFilename())));
          stream.write(bytes);
          stream.close();
        } catch (Exception e) {
          stream = null;
          return "You failed to upload " + i + " => " + e.getMessage();
        }
      } else {
        return "You failed to upload " + i + " because the file was empty.";
      }
    }
    return "upload successful";
  }
}

package com.example.configuration;

import javax.servlet.MultipartConfigElement;

import org.springframework.boot.web.servlet.MultipartConfigFactory;
import org.springframework.context.annotation.Bean;

/**
 * 文件上傳配置
 * 
 * @author 單紅宇(CSDN CATOOP)
 * @create 2017年3月11日
 */
public class FileUploadConfiguration {

  @Bean
  public MultipartConfigElement multipartConfigElement() {
    MultipartConfigFactory factory = new MultipartConfigFactory();
    // 設置文件大小限制 ,超出設置頁面會拋出異常信息,
    // 這樣在文件上傳的地方就需要進行異常信息的處理了;
    factory.setMaxFileSize("256KB"); // KB,MB
    /// 設置總上傳數據總大小
    factory.setMaxRequestSize("512KB");
    // Sets the directory location where files will be stored.
    // factory.setLocation("路徑地址");
    return factory.createMultipartConfig();
  }
}

@SpringBootApplication
public class DemoUploadfileApplication {

  public static void main(String[] args) {
    SpringApplication.run(DemoUploadfileApplication.class, args);
  }
}
<!DOCTYPE html>
<html>
<head>
<title>文件上傳示例</title>
</head>
<body>
  <h3>文件上傳示例</h3>
  <hr/>
  <form method="POST" enctype="multipart/form-data" action="/upload">
    <p>
      文件:<input type="file" name="file" />
    </p>
    <p>
      <input type="submit" value="上傳" />
    </p>
  </form>
</body>
</html>
<!DOCTYPE html>
<html>
<head>
<title>批量文件上傳示例</title>
</head>
<body>
  <h3>批量文件上傳示例</h3>
  <hr/>
  <form method="POST" enctype="multipart/form-data"
    action="/upload/batch">
    <p>
      文件1:<input type="file" name="file" />
    </p>
    <p>
      文件2:<input type="file" name="file" />
    </p>
    <p>
      文件3:<input type="file" name="file" />
    </p>
    <p>
      <input type="submit" value="上傳" />
    </p>
  </form>
</body>
</html>

最后啟動服務,訪問 http://localhost:8080/upload 和 http://localhost:8080/upload/batch 測試文件上傳。

Demo源代碼下載地址:uploadfile_jb51.rar

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持億速云。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

芜湖市| 寿阳县| 松潘县| 陆良县| 新宾| 新疆| 柏乡县| 普洱| 凤阳县| 游戏| 孟津县| 新宾| 阿荣旗| 平顶山市| 青龙| 晋中市| 河源市| 昌都县| 磐石市| 炎陵县| 布拖县| 克山县| 珲春市| 乐昌市| 防城港市| 大埔县| 肥东县| 南城县| 济宁市| 灵川县| 仙居县| 岳阳县| 灌南县| 固安县| 张掖市| 揭西县| 安丘市| 旬阳县| 上饶县| 聂荣县| 根河市|