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

vue+element ui上傳文件,顯示的文件參數(shù)內(nèi)容只有uid問(wèn)題及解決

 更新時(shí)間:2026年02月10日 09:50:35   作者:gk_starring  
使用Element UI的el-upload組件上傳文件時(shí),如果只包含uid而沒(méi)有其他信息,是因?yàn)闆](méi)有正確設(shè)置content-type為"multipart/form-data",通過(guò)使用FormData,文件會(huì)被自動(dòng)轉(zhuǎn)換成二進(jìn)制流,并且Content-type會(huì)被正確設(shè)置,最后,提供了一個(gè)使用FormData上傳文件的示例代碼

現(xiàn)象

使用elment uiel-upload組件上傳文件,會(huì)導(dǎo)致上傳的文件參數(shù)file里面只包含uid,沒(méi)有其他信息

  • file : { uid : 52688455 }
  • 其他參數(shù):xxxx

過(guò)程

在網(wǎng)上查資料,首先發(fā)現(xiàn),是沒(méi)有設(shè)定content-type為 " multipart/form-data " 由于我是封裝了請(qǐng)求的,統(tǒng)一設(shè)定axios的請(qǐng)求config,所以我將統(tǒng)一的config刪除,然后在每個(gè)請(qǐng)求方法中都逐一設(shè)定了congfig,發(fā)現(xiàn)請(qǐng)求的content-type雖然改變,但是file的值還是只有uid,還是json形式的

后面又想到,可以將文件轉(zhuǎn)變成base64字符串,然后使用json的形式傳遞,但是這樣會(huì)讓前端和后端的工作量都增大(前端轉(zhuǎn)base64,后端解碼成文件),而且太麻煩了,不愿意做

最后發(fā)現(xiàn),可以使用formData來(lái)進(jìn)行參數(shù)和文件的傳遞

FormData 會(huì)將文件自動(dòng)轉(zhuǎn)換成二進(jìn)制流,并且將header中的Content-type編碼類型被設(shè)為 "multipart/form-data",這種編碼方式被用作文件傳輸提高傳輸效率,不再需要自己設(shè)定。

如果不使用FormData ,手動(dòng)設(shè)定Content-type編碼類型,那么傳輸?shù)奈募⒉皇嵌M(jìn)制,而是一個(gè)json的map集合,并且只存在uid

最后放上源碼

1、組件代碼

<el-dialog title="上傳文件" :visible.sync="dialogFormVisible1" class="dia">
              <el-upload ref="upload"  class="upload-demo" drag
                action="https://jsonplaceholder.typicode.com/posts/" multiple
                :on-preview="handlePreview"
                :file-list="fileList" :limit="1"
                :on-exceed="exceed" :auto-upload="false"
                :http-request="handleHttpRequest" :on-change="handleChange"  >
	                <div>
	                	<i class="el-icon-upload"></i>
	                </div>
	                <div class="el-upload__text">
	                  將文件拖到此處,或<em>點(diǎn)擊上傳</em>
	                </div>
              </el-upload>
              <el-button
                style="margin-top: 20px"
                size="small"
                type="primary"
                @click="submitUpload"
                >上傳到服務(wù)器</el-button
              >
        </el-dialog>

2、由于我在組件中使用了:auto-upload=“false”,所以我是自定義上傳的,action請(qǐng)求地址是無(wú)效的,自定義axios請(qǐng)求

handleHttpRequest(param) {
      if(this.fileStatus == 200){
        var formData = new FormData();
        formData.append('file', param.file);
        formData.append('md5', this.mode.md5);
        formData.append('sha1', this.mode.sha1);
        formData.append('fileName', this.mode.fileName);
        formData.append('fileID', this.mode.fileID);
        formData.append('token', this.mode.token);
        formData.append('createTime', this.mode.createTime);
        formData.append('size', this.mode.size);
        getUpload(this.url, formData)
          .then((res) => {
            if (res.data.returnCode == 0) {
              this.dialogFormVisible1 = false;              
              this.init_1();
              this.fileList = null;
              return this.$message.success("上傳成功");
            } else {
              this.dialogFormVisible1 = false;
              return this.$message.error(res.data.errMessage);
            }
          })
          .catch((err) => {
            this.dialogFormVisible1 = false;
            return this.$message.error("請(qǐng)求失??!");
          });
      }else if(this.fileStatus == 201 || this.fileStatus == 202){
        this.dialogFormVisible1 = false;
        return this.$message.success("上傳成功");
      }else{
        this.dialogFormVisible1 = false;
        return this.$message.error("文件上傳實(shí)際路徑請(qǐng)求失??!");
      }
    },

3、點(diǎn)擊提交

submitUpload() {
  this.$refs.upload.submit();
},

擴(kuò)展 【Base64將文件轉(zhuǎn)成字符串】

1、安裝依賴

npm install --save js-base64

或者

cnpm install --save js-base64

2、使用

//在需要使用base64的組件中
let Base64 = require('js-base64').Base64;
const en = Base64.encode(file)//加密
const de= Base64.decode(en);//解密

總結(jié)

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

相關(guān)文章

最新評(píng)論

宝鸡市| 花莲县| 新龙县| 辽阳县| 怀集县| 略阳县| 鄄城县| 松潘县| 恩平市| 海南省| 淳化县| 确山县| 大足县| 织金县| 凤台县| 山东省| 正定县| 喜德县| 凌源市| 富宁县| 余庆县| 普陀区| 永登县| 汉源县| 海丰县| 潍坊市| 康乐县| 石渠县| 临汾市| 兴宁市| 同德县| 宜宾县| 巨鹿县| 安顺市| 兰坪| 新野县| 金溪县| 石阡县| 张家川| 仁怀市| 东山县|