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

使用FormData上傳二進(jìn)制文件、對象、對象數(shù)組方式

 更新時間:2024年01月02日 09:50:04   作者:洋哥登陸  
這篇文章主要介紹了使用FormData上傳二進(jìn)制文件、對象、對象數(shù)組方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教

FormData上傳 MultipartFile文件; 通過表單上傳MultipartFile文件與對象;FormData上傳對象列表

一、FormData上傳 MultipartFile文件

使用element的 el-upload組件上傳文件。

前端使用FormData 傳輸二進(jìn)制文件

<template>
  <div id="app">
    <!-- formData的主要用處
    1. 網(wǎng)絡(luò)請求中處理表單數(shù)據(jù)
    2. 網(wǎng)絡(luò)請求中處理用來異步的上傳文件 -->

    <div class="upload">
      <el-upload
        class="upload-demo"
        drag
        action="#"
        :multiple="false"
        :auto-upload="false"
        :on-change="onChange"
        :on-remove="onRemove"
        :file-list="fileList"
      >
        <i class="el-icon-upload" />
        <div class="el-upload__text">將文件拖到此處,或<em>點(diǎn)擊上傳</em></div>
        <div slot="tip" class="el-upload__tip">只能上傳jpg/png文件,且不超過500kb</div>
      </el-upload>
      <el-button size="medium" @click="upload">上傳</el-button>
    </div>
  </div>
</template>

<script>
import UploadApi from '@/api/upload.js'
export default {
  name: 'FormData',
  data() {
    return {
      fileList: []
    }
  },
  methods: {
    onChange(file, fileList) {
      this.fileList = []
      this.fileList.push(file.raw)
    },
    onRemove() {
      this.fileList = []
    },
    upload() {
      const formData = new FormData()
      formData.append('file', this.fileList[0])
      // 請求服務(wù)端接口
      UploadApi.formData(formData).then(res => {
        this.$message.success(res)
      }).catch(err => {
        this.$message.error(err)
      })
    }
  }
}
</script>

后端服務(wù)器接收

@PostMapping("/formData")
public void useFormData(@RequestParam("file") MultipartFile file){
     System.out.println(file.getName());
     System.out.println(file.getBytes());
     System.out.println(file.getInputStream());
}

二、 上傳 MultipartFile文件和 數(shù)據(jù)

前端仍然通過append方法添加數(shù)據(jù)

upload() {
      const formData = new FormData()
      formData.append('file', this.fileList[0])
      formData.append('time', 20220730)

      // 請求服務(wù)端接口
      UploadApi.formData(formData).then(res => {
        this.$message.success(res)
      }).catch(err => {
        this.$message.error(err)
      })
    }

后端添加@RequestBody 及實(shí)體類對象接收

@Data
public class Upload {
    private long time;
}
@PostMapping("/formData")
public boolean useFormData(@RequestBody @RequestParam("file") MultipartFile file, Upload upload){
	System.out.println(file.getName());
	System.out.println(file.getBytes());
	System.out.println(file.getInputStream());
	     
	System.out.println(upload.getTime());
}

三、上傳表單數(shù)據(jù)中包含對象

前端append 方法添加數(shù)據(jù)

upload() {
      const formData = new FormData()
      formData.append('file', this.fileList[0])
      formData.append('time', 20220730)
      formData.append('bean.year', 2022)
      formData.append('bean.month', 7)
      formData.append('bean.day', 30)

      // 請求服務(wù)端接口
      UploadApi.formData(formData).then(res => {
        this.$message.success(res)
      }).catch(err => {
        this.$message.error(err)
      })
    }

后端服務(wù)器添加接收對象

@Data
public class Upload {
    private long time;
    private DayBean bean;
}

@Data
public class DayBean {
    private int year;
    private int month;
    private int day;
}
@PostMapping("/formData")
public boolean useFormData(@RequestBody @RequestParam("file") MultipartFile file, Upload upload){
	System.out.println(file.getName());
	System.out.println(file.getBytes());
	System.out.println(file.getInputStream());
	     
	System.out.println(upload.getTime());
	DayBean bean = upload.getBean();
	System.out.println("year:" + bean.getYear() + ", month:" + bean.getMonth() + ", day:" + bean.getDay());
}

四、上傳對象列表

前端需要循環(huán)添加數(shù)據(jù)

upload() {
      const formData = new FormData()
      formData.append('file', this.fileList[0])
      formData.append('time', 20220730)
      for (var i = 0; i < 3; i++) {
        formData.append('bean[' + i + '].year', 2022 + i)
        formData.append('bean[' + i + '].month', 7 + i)
        formData.append('bean[' + i + '].day', 30 + i)
      }

      // 請求服務(wù)端接口
      UploadApi.formData(formData).then(res => {
        this.$message.success(res)
      }).catch(err => {
        this.$message.error(err)
      })
    }

后端服務(wù)器使用對象列表接收

@Data
public class Upload {
    private long time;
    private List<DayBean> bean;
}
@PostMapping("/formData")
public void useFormData(@RequestBody @RequestParam("file") MultipartFile file, Upload upload){
	System.out.println(file.getName());
	System.out.println(file.getBytes());
	System.out.println(file.getInputStream());
	     
	System.out.println(upload.getTime());
	List<DayBean> beanList = upload.getBean();
	for (DayBean bean : beanList) {
		System.out.println("year:" + bean.getYear() + ", month:" + bean.getMonth() + ", day:" + bean.getDay());
	}
}

其他

設(shè)置multipart上傳大小

@Configuration
public class MultipartThemeConfig {

    @Bean
    public MultipartConfigElement multipartConfig(){
        MultipartConfigFactory factory = new MultipartConfigFactory();
        //單個文件大小200MB,單位KB,MB
        factory.setMaxFileSize(DataSize.parse("5MB"));
        //單個文件大小200MB,單位KB,MB
        factory.setMaxRequestSize(DataSize.parse("10MB"));
        return factory.createMultipartConfig();
    }
}

總結(jié)

以上為個人經(jīng)驗(yàn),希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • Spring Boot的測試類中使用 @Transactional 注解

    Spring Boot的測試類中使用 @Transactional 注解

    本文主要介紹了Spring Boot的測試類中使用 @Transactional 注解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2026-05-05
  • Spring MVC @GetMapping和@PostMapping注解的使用方式

    Spring MVC @GetMapping和@PostMapping注解的使用方式

    這篇文章主要介紹了Spring MVC @GetMapping和@PostMapping注解的使用方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-05-05
  • java 集合----Map、Collection

    java 集合----Map、Collection

    HashSet 的 add() 方法添加集合元素時實(shí)際上轉(zhuǎn)變?yōu)檎{(diào)用 HashMap 的 put()方法來添加 key-value 對。HashMap 的 put() 方法.hashCode() 判斷返回值相等,如果返回值相等則再通過 equals 比較也返回 true,最終認(rèn)為key對象是相等的已經(jīng)在HashMap中存在。
    2016-04-04
  • Java創(chuàng)建Web項(xiàng)目以及沒有web.xml的解決方法

    Java創(chuàng)建Web項(xiàng)目以及沒有web.xml的解決方法

    本文詳細(xì)介紹了如何在Eclipse中創(chuàng)建Web項(xiàng)目并自動生成web.xml,提供了直接生成、新建項(xiàng)目時勾選、手動創(chuàng)建Web.xml三種方法,重點(diǎn)在于web.xml的作用和常見問題解決方案,
    2026-01-01
  • SpringBoot單體多模塊項(xiàng)目環(huán)境搭建

    SpringBoot單體多模塊項(xiàng)目環(huán)境搭建

    本文主要介紹了SpringBoot單體多模塊項(xiàng)目環(huán)境搭建,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2026-02-02
  • java-springboot3.2+多數(shù)據(jù)源+hikari連接池的配置使用

    java-springboot3.2+多數(shù)據(jù)源+hikari連接池的配置使用

    本文給大家介紹java-springboot3.2+多數(shù)據(jù)源+hikari連接池的配置使用,本文結(jié)合實(shí)例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友參考下吧
    2025-11-11
  • Java實(shí)現(xiàn)的貸款金額計算功能示例

    Java實(shí)現(xiàn)的貸款金額計算功能示例

    這篇文章主要介紹了Java實(shí)現(xiàn)的貸款金額計算功能,結(jié)合實(shí)例形式分析了Java簡單數(shù)值運(yùn)算及類型轉(zhuǎn)換等相關(guān)操作技巧,需要的朋友可以參考下
    2018-01-01
  • Java責(zé)任鏈設(shè)計模式實(shí)例分析

    Java責(zé)任鏈設(shè)計模式實(shí)例分析

    這篇文章主要介紹了Java責(zé)任鏈設(shè)計模式,結(jié)合實(shí)例形式詳細(xì)分析了Java責(zé)任鏈設(shè)計模式的原理與相關(guān)操作技巧,需要的朋友可以參考下
    2019-07-07
  • Json轉(zhuǎn)化為Java對象的實(shí)例詳解

    Json轉(zhuǎn)化為Java對象的實(shí)例詳解

    這篇文章主要介紹了Json轉(zhuǎn)化為Java對象的實(shí)例詳解的相關(guān)資料,前后端數(shù)據(jù)交互的情況經(jīng)常會遇到Json串與java 對象的相互轉(zhuǎn)換方便操作,需要的朋友可以參考下
    2017-08-08
  • java.lang.UnsupportedOperationException的問題解決

    java.lang.UnsupportedOperationException的問題解決

    本文主要介紹了java.lang.UnsupportedOperationException的問題解決,該錯誤表示調(diào)用的方法不被支持或不可用,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2024-07-07

最新評論

嘉峪关市| 乌拉特后旗| 尖扎县| 宝山区| 安龙县| 阿城市| 霍林郭勒市| 正宁县| 宾川县| 浪卡子县| 全州县| 桦甸市| 岳普湖县| 贵定县| 陆丰市| 孝义市| 兴国县| 青浦区| 长泰县| 海盐县| 嘉荫县| 城固县| 拜城县| 定陶县| 章丘市| 开鲁县| 大英县| 霍山县| 古交市| 衡东县| 蚌埠市| 定结县| 绍兴县| 赣榆县| 天长市| 郁南县| 屏边| 美姑县| 巨鹿县| 进贤县| 定南县|