最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Spring boot實現(xiàn)文件上傳功能

 更新時間:2021年10月26日 09:31:45   作者:卡通人物nnn  
這篇文章主要為大家詳細介紹了Spring boot實現(xiàn)文件上傳功能,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下

本文實例為大家分享了Spring boot實現(xiàn)文件上傳的具體代碼,供大家參考,具體內(nèi)容如下

1. 創(chuàng)建一個Maven的web工程,然后配置pom.xml文件,增加依賴:

<dependency> 
 <groupId>org.springframework.boot</groupId> 
 <artifactId>spring-boot-starter-web</artifactId> 
 <version>1.0.2.RELEASE</version> 
</dependency> 

2. 在webapp目錄下的index.jsp文件中輸入一個表單:

<html> 
<body> 
<form method="POST" enctype="multipart/form-data" action="/upload"> 
 File to upload: <input type="file" name="file"><br /> 
 Name: <input type="text" name="name"><br /> <br /> 
 <input type="submit" value="Upload"> 
  Press here to upload the file! 
</form> 
</body> 

這個表單就是我們模擬的上傳頁面

3. 編寫處理這個表單的Controller:

import java.io.BufferedOutputStream; 
import java.io.File; 
import java.io.FileOutputStream; 
 
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; 
 
@Controller 
public class FileUploadController { 
 
 @RequestMapping(value="/upload", method=RequestMethod.GET) 
 public @ResponseBody String provideUploadInfo() { 
  return "You can upload a file by posting to this same URL."; 
 } 
 
 @RequestMapping(value="/upload", method=RequestMethod.POST) 
 public @ResponseBody String handleFileUpload(@RequestParam("name") String name, 
   @RequestParam("file") MultipartFile file){ 
  if (!file.isEmpty()) { 
   try { 
    byte[] bytes = file.getBytes(); 
    BufferedOutputStream stream = 
      new BufferedOutputStream(new FileOutputStream(new File(name + "-uploaded"))); 
    stream.write(bytes); 
    stream.close(); 
    return "You successfully uploaded " + name + " into " + name + "-uploaded !"; 
   } catch (Exception e) { 
    return "You failed to upload " + name + " => " + e.getMessage(); 
   } 
  } else { 
   return "You failed to upload " + name + " because the file was empty."; 
  } 
 } 
 
} 

4. 然后我們對上傳的文件做一些限制,同時編寫main方法來啟動這個web :

import org.springframework.boot.SpringApplication; 
import org.springframework.boot.autoconfigure.EnableAutoConfiguration; 
import org.springframework.boot.context.embedded.MultiPartConfigFactory; 
import org.springframework.context.annotation.Bean; 
import org.springframework.context.annotation.ComponentScan; 
import org.springframework.context.annotation.Configuration; 
 
import javax.servlet.MultipartConfigElement; 
 
@Configuration 
@ComponentScan 
@EnableAutoConfiguration 
public class Application { 
 
 @Bean 
 public MultipartConfigElement multipartConfigElement() { 
  MultiPartConfigFactory factory = new MultiPartConfigFactory(); 
  factory.setMaxFileSize("128KB"); 
  factory.setMaxRequestSize("128KB"); 
  return factory.createMultipartConfig(); 
 } 
 
 public static void main(String[] args) { 
  SpringApplication.run(Application.class, args); 
 } 
} 

5. 然后訪問http://localhost:8080/upload就可以看到頁面了。

上面的例子是實現(xiàn)的是單個文件上傳的功能,假定我們現(xiàn)在要實現(xiàn)文件批量上傳的功能的話,我們只需要簡單的修改一下上面的代碼就行,考慮到篇幅的問題,下面只是貼出和上面不同的代碼,沒有貼出的說明和上面一樣。:

1.新增batchUpload.jsp文件

<html> 
<body> 
<form method="POST" enctype="multipart/form-data" 
  action="/batch/upload"> 
 File to upload: <input type="file" name="file"><br /> 
 File to upload: <input type="file" name="file"><br /> 
 <input type="submit" value="Upload"> Press here to upload the file! 
</form> 
</body> 
</html> 

2. 新增BatchFileUploadController.java文件:

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.ResponseBody; 
import org.springframework.web.multipart.MultipartFile; 
import org.springframework.web.multipart.MultipartHttpServletRequest; 
 
import javax.servlet.http.HttpServletRequest; 
import java.io.BufferedOutputStream; 
import java.io.File; 
import java.io.FileOutputStream; 
import java.util.List; 
 
/** 
 * Created by wenchao.ren on 2014/4/26. 
 */ 
 
@Controller 
public class BatchFileUploadController { 
 
 @RequestMapping(value="/batch/upload", method= RequestMethod.POST) 
 public @ResponseBody 
 String handleFileUpload(HttpServletRequest request){ 
  List<MultipartFile> files = ((MultipartHttpServletRequest)request).getFiles("file"); 
  for (int i =0; i< files.size(); ++i) { 
   MultipartFile file = files.get(i); 
   String name = file.getName(); 
   if (!file.isEmpty()) { 
    try { 
     byte[] bytes = file.getBytes(); 
     BufferedOutputStream stream = 
       new BufferedOutputStream(new FileOutputStream(new File(name + i))); 
     stream.write(bytes); 
     stream.close(); 
    } catch (Exception e) { 
     return "You failed to upload " + name + " => " + e.getMessage(); 
    } 
   } else { 
    return "You failed to upload " + name + " because the file was empty."; 
   } 
  } 
  return "upload successful"; 
 } 
} 

這樣一個簡單的批量上傳文件的功能就ok了,是不是很簡單啊。

注意:上面的代碼只是為了演示而已,所以編碼風格上采取了隨性的方式,不建議大家模仿。

參考資料:MultipartResolver實現(xiàn)文件上傳功能

以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

1. MultipartResolver也可以實現(xiàn)文件上傳功能。參考文章:

相關(guān)文章

  • Java之通過OutputStream寫入文件與文件復制問題

    Java之通過OutputStream寫入文件與文件復制問題

    這篇文章主要介紹了Java之通過OutputStream寫入文件與文件復制問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-04-04
  • Java 泛型全解析

    Java 泛型全解析

    這篇文章主要介紹了Java 泛型的相關(guān)資料,幫助大家更好的理解和學習Java,感興趣的朋友可以了解下
    2020-08-08
  • Java字節(jié)碼增強技術(shù)知識點詳解

    Java字節(jié)碼增強技術(shù)知識點詳解

    在本篇文章里小編給大家整理的是一篇關(guān)于Java字節(jié)碼增強技術(shù)知識點詳解內(nèi)容,有興趣的朋友可以跟著學習下。
    2021-08-08
  • Spring整合Mycat2的具體過程詳解

    Spring整合Mycat2的具體過程詳解

    這篇文章主要給大家介紹Springboot整合Mycat2的具體過程,文中有詳細的圖解過程,感興趣的小伙伴可以跟著小編一起來學習
    2023-05-05
  • 將本地jar包安裝進入maven倉庫(實現(xiàn)方法)

    將本地jar包安裝進入maven倉庫(實現(xiàn)方法)

    下面小編就為大家?guī)硪黄獙⒈镜豭ar包安裝進入maven倉庫(實現(xiàn)方法)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-06-06
  • Spring實現(xiàn)類私有方法的幾個問題(親測通用解決方案)

    Spring實現(xiàn)類私有方法的幾個問題(親測通用解決方案)

    現(xiàn)實的業(yè)務場景中,可能需要對Spring的實現(xiàn)類的私有方法進行測試。本文給大家分享Spring實現(xiàn)類私有方法面臨的幾個問題及解決方案,感興趣的朋友跟隨小編一起看看吧
    2021-06-06
  • SpringBoot 中 AutoConfiguration的使用方法

    SpringBoot 中 AutoConfiguration的使用方法

    這篇文章主要介紹了SpringBoot 中 AutoConfiguration的使用方法,本文通過實例代碼給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下
    2019-04-04
  • Java編程之如何通過JSP實現(xiàn)頭像自定義上傳

    Java編程之如何通過JSP實現(xiàn)頭像自定義上傳

    之前做這個頭像上傳功能還是花了好多時間的,今天我將我的代碼分享給大家,下面這篇文章主要給大家介紹了關(guān)于Java編程之如何通過JSP實現(xiàn)頭像自定義上傳的相關(guān)資料,文中通過示例代碼介紹的非常詳細,需要的朋友可以參考下
    2022-12-12
  • Spring中如何自定義監(jiān)聽器

    Spring中如何自定義監(jiān)聽器

    這篇文章將通過一個簡單的自定義的監(jiān)聽器,從源碼的角度分析一下Spring中監(jiān)聽的整個過程,分析監(jiān)聽的作用,感興趣的小伙伴可以了解一下
    2024-11-11
  • 淺談Java分布式架構(gòu)下如何實現(xiàn)分布式鎖

    淺談Java分布式架構(gòu)下如何實現(xiàn)分布式鎖

    這篇文章主要介紹了淺談Java分布式架構(gòu)下如何實現(xiàn)分布式鎖,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-07-07

最新評論

洪湖市| 开阳县| 丰都县| 永年县| 台北县| 集安市| 铁力市| 陵水| 泸溪县| 曲阜市| 桂平市| 松溪县| 夏津县| 洮南市| 岑巩县| 建水县| 平昌县| 泌阳县| 凤凰县| 朝阳市| 平罗县| 晴隆县| 临洮县| 泸州市| 穆棱市| 崇信县| 冷水江市| 福泉市| 长泰县| 定结县| 宁明县| 寻甸| 南澳县| 来宾市| 丽江市| 皋兰县| 株洲县| 宜宾县| 彰化县| 宜丰县| 永福县|