vue上传流文件

在这里插入图片描述

	<el-upload
	 class="avatar-uploader"
	 action="#"
	 :show-file-list="false"
	 :http-request="httpRequest">
	   <p><el-button type="primary" size="medium" class="uploadBtn">选择文档</el-button></p>
	</el-upload>
//文件转base64
	getBase64(file) {
		console.log(file)
		return new Promise((resolve, reject) => {
			let reader = new FileReader();
			let fileResult = "";
			reader.readAsDataURL(file);      //开始转
			reader.onload = function() {
				fileResult = reader.result;
			};      //转 失败
			reader.onerror = function(error) {
				reject(error);
			};      //转 结束  咱就 resolve 出去
			reader.onloadend = function() {
				resolve(fileResult);
			};
		});
	},	
	httpRequest(data) { 
		var _this = this;
		this.fileName = data.file.name;		//文件名
		console.log(data.file.type)			//文件类型
		
		//限制上传文件类型
		var docxType =  'application/vnd.openxmlformats-officedocument.wordprocessingml.document';		//docx后缀	
		var txtType = 'text/plain'				//txt后缀
		var docType =  "application/msword"		//doc后缀
		
		if(data.file.type == docxType || data.file.type == txtType || data.file.type == docType){
			console.log(docxType);
			this.getBase64(data.file).then(resBase64 => {
				this.fileBase64 = resBase64.split(',')[1]   	//直接拿到base64信息
				//上传文件接口
		  		this.$http.post('/API/FileAPI/UploadFileMethod',{
		  			base64Filecontent:resBase64.split(',')[1],
					catalog:_this.catalog,
					filename:data.file.name
		  		})
		      	.then(function(res){
		      		console.log(res)
		      		if(res.status == 200){
		      		}else{}
					})
		    	.catch(error =>{
		        	
			    })						
			})
			
		}else{
			this.$message.error("上传文件只能是 DOCX DOC TXT 格式!");
		}
	},
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值