<div class="upload-item"> <div class="upload-item-title">样本上传</div> <div class="upload-content"> <el-upload class="upload-demo" ref="upload" drag action="string" accept="file" :http-request="selfUpload" :file-list="file_list" :limit=1 :before-upload="beforeUpload" :on-remove="removeUpload" :on-exceed="uploadExceed" :on-change="uploadChange" > <i class="el-icon-upload"></i> <div class="el-upload__text">请选择APK文件,或<EM</Click Upload>EM></div> </el-upload> <div class="succ" v-show="resultSucc"><i class="el-icon-success"></i>上传成功</div> <el-progress :percentage="percent" :format="format" v-show="showPercen"></el-progress> </div> </div>
selfUpload(params){ let _this = this; let file = params.file; let blobSlice = File.prototype.slice || File.prototype.mozSlice || File.prototype.webkitSlice, spark = new SparkMD5.ArrayBuffer(), fileReader = new FileReader(); fileReader.onload = function(e){ spark.append(e.target.result); _this.sendData.file_md5 = spark.end().toUpperCase() ; getInfo ({ "fileMd5" : _this.sendData.file_md5 }) .then (RES => { the let Data = res.data.data; IF (Data) { _this Message.Error An $ (. 'This application is uploaded, re select ' ); . _this $ refs.upload.abort (); . _this $ refs.upload.clearFiles (); _this.removeUpload (); return to false ; } the else { _this.file = File; _this.sendData.sample_source_name = params.file.name; let time = new Date().getTime() _this.sendData.upload_file_name = time; let perSize = 1024*1024; let countSize = file.size/perSize; _this.fileStart = 0; _this.fileSize = file.size; let size = file.size/100; _this.chushu = Math.ceil(file.size/perSize);//次数 let yushu = file.size%perSize;//最后一次加 _this.finalSize = yushu _this.sendUpload(time) } }) } fileReader.readAsArrayBuffer(blobSlice.call(file, 0, file.size)); },
getFileBinary(file, cb) { var reader = new FileReader(); reader.readAsArrayBuffer(file); reader.onload = function (e) { if (typeof cb === "function") { cb.call(this, this.result); } } },