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

elementUI自定義上傳文件功能實(shí)現(xiàn)(前端后端超詳細(xì)過程)

 更新時(shí)間:2022年11月11日 14:51:53   作者:讀秀  
自定義上傳思路很簡單,下面這篇文章主要給大家介紹了關(guān)于elementUI自定義上傳文件功能實(shí)現(xiàn)(前端后端超詳細(xì)過程)的相關(guān)資料,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下

簡介:

自定義上傳文件并與其他參數(shù)一同提交到后臺(tái)(主要使用axios)

1.簡單介紹組件( upload)的屬性(熟悉參數(shù)的直接略過)

總結(jié)elmentUI一下它的使用和常用屬性的作用。

limit : 限制了上傳文件的個(gè)數(shù) , 如果你上傳單個(gè)文件這里設(shè)置 1 ,多個(gè)文件就別設(shè)置。

auto-upload:自動(dòng)上傳,在我看來,除非是單獨(dú)上傳文件時(shí),
這個(gè)屬性才有用,因?yàn)閱为?dú)文件直接上傳到后臺(tái)服務(wù)器。
而我們想要自己獲取到組件里的文件和其它表單數(shù)據(jù),再上傳,就需要?jiǎng)e的辦法,下面會(huì)講。

action:這個(gè)屬性是上傳文件的地址,當(dāng)我們指定了 auto-upload 屬性,
組件就會(huì)自動(dòng)按 action 的地址提交。我一般都不設(shè)置這個(gè)屬性:action="none", 
因?yàn)槲矣X得自定義的更好,拓展性強(qiáng)。

multiple:這個(gè)屬性支持多文件上傳,如果你是上傳單文件這個(gè)屬性隨便設(shè)不設(shè)置,如果是多文件,就要設(shè)置,所以建議不動(dòng),因?yàn)樗J(rèn)開啟。

accept:這個(gè)就不細(xì)說了,限制類型的,當(dāng)然僅限選擇時(shí)的類型,用戶要是想上傳其它類型的文件照樣有辦法。

2.主要目的自定義上傳文件

2.1 組件代碼

<el-upload class="upload"
                 ref="upload"
                 action="string"
                 :file-list="fileList"	//存放選擇的文件
                 :auto-upload="false"	//取消自動(dòng)上傳		
                 :http-request="uploadFile"		自定義上傳的方法
                 :on-change="handleChange"	//文件選擇后執(zhí)行的方法
                 :on-preview="handlePreview"	//點(diǎn)擊顯示文件(沒啥用)
                 :on-remove="handleRemove"	//移除文件
                 multiple="multiple">	
        <el-button slot="trigger"
                   size="small"
                   type="primary"
                   @click="delFile">選取文件</el-button>
      </el-upload>

2.2 data中的屬性

data(){
    return{
	// el-upload組件綁定的屬性—— :file-list=“fileList”,渲染后fileList[index]是Object類型,而不是后臺(tái)所需的File類型,
      // 而這個(gè)組件已經(jīng)把對(duì)應(yīng)的File類型存儲(chǔ)到了fileList[index].raw這個(gè)屬性里,直接拿來用就好.
      fileList: [],
      // 不支持多選
      multiple: false,
      formData: "",
    }
}

2.3 methods的方法

    //點(diǎn)擊上傳文件觸發(fā)的額外事件,清空fileList
    delFile () {
      this.fileList = [];
    },
    handleChange (file, fileList) {
      this.fileList = fileList;
      // console.log(this.fileList, "sb");
    },
    //自定義上傳文件
    uploadFile (file) {
      this.formData.append("file", file.file);
      // console.log(file.file, "sb2");
    },
    //刪除文件
    handleRemove (file, fileList) {
      console.log(file, fileList);
    },
    // 點(diǎn)擊文件
    handlePreview (file) {
      console.log(file);
    },

3.與其他參數(shù)通過axios提交到后臺(tái)

這里要使用到FormData()對(duì)文件進(jìn)行存儲(chǔ)才能提交到后臺(tái)

具體實(shí)現(xiàn)方式:

//準(zhǔn)備一個(gè)提交按鈕
<el-button type="primary"
                     @click="onSubmit">保存</el-button>

提交事件:

//保存按鈕
    onSubmit () {
        let formData = new FormData();
        formData.append("file", this.fileList[0].raw);//拿到存在fileList的文件存放到formData中
       //下面數(shù)據(jù)是我自己設(shè)置的數(shù)據(jù),可自行添加數(shù)據(jù)到formData(使用鍵值對(duì)方式存儲(chǔ))
        formData.append("title", this.title);

axios異步提交:

注意:使用FormData提交文件只能使用post請(qǐng)求

在post請(qǐng)求體中需要設(shè)置 “Content-Type”:
“multipart/form-data;charset=utf-8”,提醒后臺(tái)數(shù)據(jù)是FormData類型

axios.post(post請(qǐng)求的具體路徑, formData, {
        "Content-Type": "multipart/form-data;charset=utf-8"
      })
        .then(res => {
          if (res.data === "SUCCESS") {
            this.$notify({
              title: '成功',
              message: '提交成功',
              type: 'success',
              duration: 1000
            });
          }
        })

最后后臺(tái)數(shù)據(jù)的接收

注意:前臺(tái)傳送的是FormData數(shù)據(jù),要拿到文件要使用@RequestParam(前端存放到formData的key)
MultipartFile file進(jìn)行接收

//采用PostMapping
    @PostMapping(具體路徑)
    public String saveVue(String title,@RequestParam("file") MultipartFile file) throws IOException {
       	//拿到具體文件 file
            return "SUCCESS";
    }

介紹到這就基本完成了elmentui的自定義上傳功能!

總結(jié)

到此這篇關(guān)于elementUI自定義上傳文件功能實(shí)現(xiàn)的文章就介紹到這了,更多相關(guān)elementUI自定義上傳文件內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • vue中this.$emit使用方法的實(shí)際案例

    vue中this.$emit使用方法的實(shí)際案例

    this.$emit()的作用大家應(yīng)該也都知道,主要用于子組件像父組件傳值,這篇文章主要給大家介紹了關(guān)于vue中this.$emit使用方法的相關(guān)資料,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2023-02-02
  • 淺談super-vuex使用體驗(yàn)

    淺談super-vuex使用體驗(yàn)

    super-vuex是一套用于簡化Vuex的數(shù)據(jù)架構(gòu)。這篇文章主要介紹了淺談super-vuex使用體驗(yàn),小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2018-06-06
  • vue中使用Cesium加載shp文件、wms服務(wù)、WMTS服務(wù)問題

    vue中使用Cesium加載shp文件、wms服務(wù)、WMTS服務(wù)問題

    這篇文章主要介紹了vue中使用Cesium加載shp文件、wms服務(wù)、WMTS服務(wù)問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-05-05
  • 基于Vue 2.0的模塊化前端 UI 組件庫小結(jié)

    基于Vue 2.0的模塊化前端 UI 組件庫小結(jié)

    AT-UI 是一款基于 Vue.js 2.0 的輕量級(jí)、模塊化前端 UI 組件庫,主要用于快速開發(fā) PC 網(wǎng)站產(chǎn)品。下面通過本文給大家介紹Vue 2.0的模塊化前端 UI 組件庫,需要的朋友參考下吧
    2017-12-12
  • Vue利用computed配合watch實(shí)現(xiàn)監(jiān)聽多個(gè)屬性的變化

    Vue利用computed配合watch實(shí)現(xiàn)監(jiān)聽多個(gè)屬性的變化

    這篇文章主要給大家介紹了在Vue中巧用computed配合watch實(shí)現(xiàn)監(jiān)聽多個(gè)屬性的變化的方法,文中有詳細(xì)的代碼示例供大家參考,具有一定的參考價(jià)值,需要的朋友可以參考下
    2023-10-10
  • vue 判斷頁面是首次進(jìn)入還是再次刷新的實(shí)例

    vue 判斷頁面是首次進(jìn)入還是再次刷新的實(shí)例

    這篇文章主要介紹了vue 判斷頁面是首次進(jìn)入還是再次刷新的實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2020-11-11
  • Vue組件通信之Bus的具體使用

    Vue組件通信之Bus的具體使用

    本篇文章主要介紹了Vue組件通信之Bus的具體使用,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2017-12-12
  • 基于element日歷組件實(shí)現(xiàn)簽卡記錄

    基于element日歷組件實(shí)現(xiàn)簽卡記錄

    這篇文章主要為大家詳細(xì)介紹了基于element日歷組件實(shí)現(xiàn)簽卡記錄,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-08-08
  • Vue側(cè)滑菜單組件——DrawerLayout

    Vue側(cè)滑菜單組件——DrawerLayout

    本文介紹一個(gè)簡單的DrawerLayout(類似Android的DrawerLayout)布局組件的實(shí)現(xiàn),基于Vue.js側(cè)滑菜單組件的實(shí)現(xiàn)代碼大家通過本文一起學(xué)習(xí)吧
    2017-12-12
  • uniapp微信小程序axios庫的封裝及使用詳細(xì)教程

    uniapp微信小程序axios庫的封裝及使用詳細(xì)教程

    這篇文章主要給大家介紹了關(guān)于uniapp微信小程序axios庫的封裝及使用的相關(guān)資料,Axios是一個(gè)基于promise網(wǎng)絡(luò)請(qǐng)求庫,作用于node.js和瀏覽器中axios-miniprogram-adapteraxios的小程序適配器,需要的朋友可以參考下
    2023-08-08

最新評(píng)論

惠州市| 长岭县| 冕宁县| 库伦旗| 双辽市| 张家口市| 大同市| 宁夏| 新干县| 安乡县| 巢湖市| 东城区| 营山县| 兖州市| 麻城市| 民和| 潼南县| 永定县| 高台县| 诸城市| 罗城| 宁夏| 比如县| 依安县| 广汉市| 行唐县| 湖口县| 广河县| 岱山县| 禹城市| 永福县| 高尔夫| 邵武市| 化州市| 舒城县| 长葛市| 丁青县| 乌兰察布市| 泰州市| 贵定县| 雅江县|