vue 2.0 element-ui 에서 el-uproad 의 before-uproad 방법 을 해결 하여 false 로 돌아 갈 때 submit()가 유효 하지 않 습 니 다.

4097 단어 vue2.0element-ui
제 가 실현 하고 자 하 는 기능 은 파일 을 업로드 하기 전에 표 에 중복 되 는 데이터 가 있 는 지 확인 하 는 것 입 니 다.있 으 면 팝 업 창 알림 이 덮어 쓸 지 확인 한 후에 계속 업로드 하고 취소 한 후에 다시 업로드 하지 않 습 니 다.
프로젝트 에 사용 되 는 element-ui 는 V 1.4.3 입 니 다.

<el-upload
   class="upload-demo" drag
   ref="fileUpload"
   :action="urls.fileUpload"
   :on-success="handleUploadSuccess"
   :on-error="handleUploadError"
   :on-progress="progressUpload"
   :before-upload="beforeUpload"
   show-file-list
   multiple>
   <i class="el-icon-upload"></i>
  <div class="el-upload__text">    ,       </div>
 </el-upload>

코드 에서 저 는 before-uproad 방법 을 false 로 되 돌려 주 고 확인 을 클릭 한 후에this.$refs.fileUpload.submit();그러나 확인 을 클릭 한 후에 도 파일 이 업로드 되 지 않 았 습 니 다.뒤에서 element-ui 소스 코드 를 보 았 는데 before-uproad 방법 이 false 로 돌아 가면 submit()방법 이 차단 되 는 것 을 발 견 했 습 니 다.
그리고 두 번 째 문 제 는 취소 시this.$refs.fileUpload.clearFiles();내 가 조정 한 clearFiles()방법 은 파일 목록 을 모두 비 울 것 이다.나 는 단지 내 가 취 소 했 던 그 파일 을 삭제 하고 싶 을 뿐이다.
뒤에 이 두 문장 을 다음 과 같은 두 문장 으로 바 꾸 었 다.

계속 업로드: _this.$refs.fileUpload.$children[0].post(file);
취소 시 파일 목록 에서 이 파일 을 삭제 합 니 다_this.$refs.fileUpload.handleRemove(file);추가:VUE 2.0 element upload 사용

<template>
 <div class="uptemp">
  <el-upload
   class="upload-demo"
   ref="upload"
   multiple="false"
   action="/web/api/uploadFile"
   :on-preview="handlePreview"
   :on-remove="handleRemove"
   :on-change="handleChange"
   :before-upload="beforeUpload"
   :file-list="fileList"
   :auto-upload="false"
   :multiple="false">
   <el-button slot="trigger" size="small" type="primary">    </el-button>
   <el-button style="margin-left: 10px;" size="small" type="success" @click="submitUpload">  </el-button>
   <div slot="tip" class="el-upload__tip">    jpg/png  </div>
  </el-upload>
 </div>
</template>
<script>
 export default {
  data() {
   return {
    fileList: []
   }
  },
  mounted: function () {
   //          
  },
  methods: {
   submitUpload() {
    this.$refs.upload.submit();
   },
   handleRemove(file, fileList) {
    console.log(file, fileList);
   },
   handlePreview(file) {
    console.log(file);
   },
   handleChange(file, fileList){
    console.log(file);
    console.log(fileList);
   },
   beforeUpload: function (file) {
    console.log(file)
    //     ,      formdata    
    let fd = new FormData()
    fd.append('file', file)
    this.$http.post('/web/api/uploadFile', fd).then((res) => {
     console.log(res)
    }, (res) => {
     console.log(res)
    });
    return false;
   }
  },
  components: {
//        
  }
 }
</script>
<style scoped>
</style>
<style>
 .uptemp .el-upload-list {
  position: absolute;
  left: 140px;
  top: 0;
  width: 50%;
 }
 .uptemp {
  position: relative;
 }
 .uptemp .el-upload-list .el-upload-list__item {
  margin-top: 0;
 }
</style>
총결산
위 에서 말 한 것 은 편집장 이 소개 한 vue 2.0 element-ui 에서 el-uproad 의 before-uproad 방법 이 false 로 돌아 갈 때 submit()가 효력 이 발생 하지 않 는 문 제 를 해결 하 는 데 도움 이 되 기 를 바 랍 니 다.궁금 한 점 이 있 으 면 메 시 지 를 남 겨 주세요.편집장 은 제때에 답 해 드 리 겠 습 니 다.여기 서도 저희 사이트 에 대한 여러분 의 지지 에 감 사 드 립 니 다!

좋은 웹페이지 즐겨찾기