国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

批量上傳文件,以input上傳文件,后端以List<MultipartFile>類型接收

這篇具有很好參考價(jià)值的文章主要介紹了批量上傳文件,以input上傳文件,后端以List<MultipartFile>類型接收。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

最近公司要求要做一個(gè)批量上傳文件的功能,以往做的導(dǎo)入Excel表格、上傳圖片都是上傳一個(gè)文件的,此次在開發(fā)的過(guò)程中著實(shí)讓我犯了難,尤其是前后端對(duì)接的時(shí)候,這里做個(gè)記錄。

一、后端接口

后端接口是這樣的,跟單個(gè)文件上傳相比就是將MultipartFile類型的數(shù)據(jù)變成了集合,這個(gè)MultipartFile還是在FormData中上傳,這里的“yqId”和“depId”也是在FormData中。

//批量上傳文件
@PostMapping("/batchUploadContract")
public Result batchUploadContract(@RequestParam("yqId") String yqId, 
                                  @RequestParam("depId") String depId, 
                                  @RequestParam("fileList") List<MultipartFile> fileList) {
    Result result = null;
    try {
        SysUserHetongDto params = new SysUserHetongDto();
        params.setYqId(yqId);
        params.setDepId(depId);
        result = Result.OK("上傳成功!", userHetongService.batchUploadContract(params, fileList));
    } catch (Exception e) {
        e.printStackTrace();

        result = Result.error("上傳失敗!" + e.getMessage());
    } finally {
        return result;
    }
}

二、前端對(duì)接

前端框架是“Ant Design”,一開始也考慮用它的上傳組件,可能是對(duì)組件不熟悉的原因,在對(duì)接的過(guò)程中,總是遇到各種各樣的問(wèn)題,要么就是會(huì)調(diào)用多次接口(選中幾個(gè)文件就調(diào)幾次那種),要么就傳遞的數(shù)據(jù)不是binary類型的,不能被后端接收,折騰了好久都沒(méi)有對(duì)接成功。

最后決定在vue中使用input進(jìn)行多文件上傳

“template”標(biāo)簽中

<template>
	<div>
      <input type="file" @change="uploadFile" multiple="multiple">
    </div>
</template>

“script”標(biāo)簽中

<script>
import axios from 'axios'
export default { 
	methods: {
	    uploadFile(event) {  //事件名稱可以自己取,我這里是event
	      // console.log("uploadFile event", event)
	      console.log("uploadFile files", event.target.files)
	      // console.log("uploadFile typeof", typeof event.target.files[0])
	      let files = event.target.files;  //input上傳的文件一般是在target.files下,是一個(gè)File類型的集合
	      const headers = {
	        'X-Access-Token': 'eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJleHAiOjE2OTQ0MTgyNjEsInVzZXJuYW1lIjoi5Y2h5LiA6L2mIn0.J0l4AbdlnZKszqk8QDRCGbLrR6vfNynkz1K2mWJgX4s',  //請(qǐng)求token,我這里的名稱是X-Access-Token
	        'Content-Type': 'multipart/form-data',  // 文件上傳類型
	      };
	      let url = 'http://127.0.0.1:8080/jeecg-boot/hetong/batchUploadContract';
	      let form = new FormData();  //FormData中的參數(shù)
	      form.append('depId', '74f801bcffe745c3a20caad20985db9f');
	      form.append('yqId', 'ca6d914f8b0840928f787f4073ccc023');
	
	      //上傳集合類型的文件,后端以List<MultipartFile>接收
	      for(let i = 0; i < files.length; i++) {
	        form.append('fileList', files[i]);
	      }
	
	      //調(diào)用后端接口
	      axios.post(url, form, {headers:headers}).then((res) => {
	        //console.log("uploadFile res", res)
	        // if(res.data.code == 200) {
	        //   console.log(res.data.message)
	        // }
	      })
	      return false;
	    }
	  },
  	},
}
</script>

三、測(cè)試

選擇文件上傳后,查看前端控制臺(tái)

批量上傳文件,以input上傳文件,后端以List<MultipartFile>類型接收,問(wèn)題記錄,list,vue.js,數(shù)據(jù)結(jié)構(gòu)

這兩個(gè)是選中上傳的文件,時(shí)File類型的,但我們要的是binary類型的

在上傳文件方法中循環(huán)添加到FormData中就變成了binary類型的

批量上傳文件,以input上傳文件,后端以List<MultipartFile>類型接收,問(wèn)題記錄,list,vue.js,數(shù)據(jù)結(jié)構(gòu)

查看Network,可以看到File類型的文件已經(jīng)轉(zhuǎn)化為binary類型了

批量上傳文件,以input上傳文件,后端以List<MultipartFile>類型接收,問(wèn)題記錄,list,vue.js,數(shù)據(jù)結(jié)構(gòu)

就是會(huì)出現(xiàn)選中多少個(gè)文件,就會(huì)有多少個(gè)同名的文件參數(shù)(我這里是fileList)的情況,不過(guò)這個(gè)不影響,選中了幾個(gè)文件后端就會(huì)接收到幾個(gè)文件。

后端debug

批量上傳文件,以input上傳文件,后端以List<MultipartFile>類型接收,問(wèn)題記錄,list,vue.js,數(shù)據(jù)結(jié)構(gòu)

可以看到兩個(gè)文件已經(jīng)傳了進(jìn)來(lái),總算成功了。文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-732817.html

到了這里,關(guān)于批量上傳文件,以input上傳文件,后端以List<MultipartFile>類型接收的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • Postman本地測(cè)試上傳MultipartFile文件接口

    Postman本地測(cè)試上傳MultipartFile文件接口

    在請(qǐng)求Body中選擇form-data傳輸類型,填寫后端file參數(shù)名稱,并將參數(shù)設(shè)置為File類型,這時(shí)value輸入框?qū)⒆兂晌募x擇框。 如果此時(shí)發(fā)送請(qǐng)求給后端,會(huì)返回報(bào)錯(cuò)request is not a multipart request. 我們還需要將數(shù)據(jù)傳輸類型Content-Type設(shè)置為multipart/form-data.

    2024年02月12日
    瀏覽(23)
  • 基于SpringWeb MultipartFile文件上傳、下載功能

    在Web開發(fā)中,文件上傳是一個(gè)常見(jiàn)的功能需求。Spring框架提供了MultipartFile接口,用于處理文件上傳請(qǐng)求。MultipartFile可以代表一個(gè)多部分文件上傳請(qǐng)求中的一個(gè)文件,提供了一系列方法用于獲取文件的各種屬性和內(nèi)容,使得在后端處理文件上傳變得十分方便。下面我們將介紹

    2024年04月17日
    瀏覽(31)
  • Spring Mvc 文件上傳(MultipartFile )—官方原版

    要啟動(dòng)Spring Boot MVC應(yīng)用程序,首先需要一個(gè)啟動(dòng)器。在這個(gè)示例中,已經(jīng)添加了spring-boot-starter thymelaf和spring-boot-starter web作為依賴項(xiàng)。要使用Servlet容器上傳文件,您需要注冊(cè)一個(gè)MultipartConfigElement類(在web.xml中為<multipart-config>)。多虧了Spring Boot,一切都可以自動(dòng)配置!

    2024年02月14日
    瀏覽(19)
  • MultipartFile上傳至服務(wù)器,文件名稱中文亂碼問(wèn)題

    MultipartFile上傳至服務(wù)器,文件名稱中文亂碼問(wèn)題

    1.首先查看服務(wù)器是否設(shè)置為了zh_CN.UTF-8 輸入命令:locale ?不是則,進(jìn)行查看服務(wù)器上是否有zh_CN.UTF-8 查看所有可以使用的字符編碼集 輸入命令:locale -a ?如果沒(méi)有可用的zh_CN.UTF-8 則進(jìn)行安裝: CentOS命令:yum install kde-l10n-Chinese -y? ubuntu命令:sudo apt-get install language-pack-zh-ha

    2024年02月10日
    瀏覽(26)
  • SpringBoot如何使用MultipartFile進(jìn)行文件上傳保存到服務(wù)器本地

    之前一直都是用的別人封裝好的文件上傳方法,這次想自己寫一個(gè)特別簡(jiǎn)單的,文件上傳方法,非常適合新手觀看… 首先需要Springboot需要有Web依賴,就是下面這個(gè)依賴 依賴導(dǎo)完了,下面就直接是代碼,大家看一下 到這里文件上傳的解釋都在代碼里面,下面如果報(bào)文件過(guò)大的報(bào)錯(cuò)還需

    2024年02月13日
    瀏覽(31)
  • MultipartFile類型接收上傳文件報(bào)出的UncheckedIOException以及刪除tomcat臨時(shí)文件失敗源碼探索

    MultipartFile類型接收上傳文件報(bào)出的UncheckedIOException以及刪除tomcat臨時(shí)文件失敗源碼探索

    因?yàn)樾枰治鰯?shù)據(jù),待處理excel文件的數(shù)據(jù)行數(shù)太大,手動(dòng)太累,花半小時(shí)寫了一個(gè)定制的數(shù)據(jù)入庫(kù)工具,改成了通用的,整個(gè)項(xiàng)目中的萬(wàn)級(jí)別數(shù)據(jù)都在工具上分析,寫SQL進(jìn)行分析,但是遇到很疑惑的問(wèn)題,文件上傳結(jié)束收流時(shí),tomcat的DisFileItem類的delete方法會(huì)自動(dòng)調(diào)用,但是

    2024年02月15日
    瀏覽(18)
  • Spring Boot學(xué)習(xí)隨筆- 文件上傳和下載(在線打開、附件下載、MultipartFile)

    Spring Boot學(xué)習(xí)隨筆- 文件上傳和下載(在線打開、附件下載、MultipartFile)

    學(xué)習(xí)視頻:【編程不良人】2021年SpringBoot最新最全教程 文件上傳是指將文件從客戶端計(jì)算機(jī)傳輸?shù)椒?wù)器的過(guò)程。 上傳思路 前端的上傳頁(yè)面:提交方式必須為 post , enctype 屬性必須為 multipart/form-data 開發(fā)后端的Controller 后端方法接收參數(shù)必須和前端標(biāo)簽的name名一致 upload.js

    2024年02月04日
    瀏覽(51)
  • input詳解之文件上傳

    input詳解之文件上傳

    input 全部類型 常用的并且能為大多數(shù)瀏覽器所識(shí)別的類型大概有:text、password、number、button、reset、submit、hidden、radio、checkbox、file、image、color、range、date、month、week、time、datetime-local。 1、一般類型 2、file 類型 文件 2.1、屬性 accept屬性 accept=“image/png” 或 accept=“.png” ——

    2023年04月09日
    瀏覽(22)
  • input改造文件上傳,el-table的改造,點(diǎn)擊上傳,拖拽上傳,多選上傳

    input改造文件上傳,el-table的改造,點(diǎn)擊上傳,拖拽上傳,多選上傳

    第一個(gè)input標(biāo)簽效果 第二個(gè)input標(biāo)簽的效果 el-table的改造效果 3、input本身支持拖拽上傳但要設(shè)置opcity為0,不能設(shè)置diaplay:none或者visiables ? 如果不使用拖拽上傳的話,只點(diǎn)擊上傳可使用如下 input同時(shí)也支持多選文件上傳input mutilple/ 4、表格效果 只設(shè)置一小框的樣式

    2024年02月07日
    瀏覽(22)
  • 圖片上傳流程&前端上傳文件&后端保存文件&并返回圖片地址

    圖片上傳流程&前端上傳文件&后端保存文件&并返回圖片地址

    也是在最近一點(diǎn)時(shí)間寫小demo 遇到的一些問(wèn)題 比如在用戶界面,用戶選擇本地的一張照片,前端把照片傳到后端,后端怎么把照片保存到服務(wù)器,然后返回給 圖片線上地址。也是找了一些文章,然后分享下。? 技術(shù) 前端:react 后端:egg.js(node框架) base64 轉(zhuǎn)換? 轉(zhuǎn)二進(jìn)制 保存

    2024年02月02日
    瀏覽(23)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包