vue+element-ui实现上传及预览文件

1 篇文章 0 订阅
1 篇文章 0 订阅

前言

上篇文章分享了微信小程序上传及预览文件的方法,本篇文章来分享一下vue+element实现上传及预览文件的方法,upload上传文件方法,是element-ui提供的方法,主要是利用其参数绑定方法进行上传操作,有想要深入了解的/博友,可到element-ui官网查看。window.open(url)可打开想要查看的文件,这些也是我最近搜索到的并且亲自实践过的,如果觉得有用,可上滑查看实现代码。

上传文件实现代码

<!--
	show-file-list  是否显示已上传文件列表
	on-preview      点击文件列表中已上传的文件时的钩子
	action          必选参数,上传的地址
	headers         设置上传的请求头部
	on-success      文件上传成功时的钩子
	on-error        文件上传失败时的钩子
	before-upload   上传文件之前的钩子,参数为上传的文件,若返回 false 或者                                                                                                                                                                                                                                                                           
                    返回 Promise 且被 reject,则停止上传。
    limit           最大允许上传个数
                    -->
 <el-upload v-if="!file.name" style="display:inline"
            :show-file-list="false"
             class="upload-demo"
            :on-preview="handlePreview"
            :action="uploadAction"
            :on-success="handleSuccess"
            :on-error="Err"
            :limit="1"
            :headers = "headers"
            :beforeUpload="beforeUpload"
            @click.native="choose(img)">
           <el-button  style="margin-left:10px" type="text" size="small">
            选择文件
            </el-button>
  </el-upload>

 export default{
   data(){
      return {
        key:''
        uploadAction:"https://app.exbaiduer.com/api/api/fileUpload/upload-image",
        headers:{},
      }
    },
     mounted(){
      if(this.$route.query.id){
      	this.info(this.$route.query.id);
      };
      this.headers = {
        'Authorization': cookieStorage.get("token"),
      };
    },
    methods: {
     choose(k){
        this.key=k
      },
      beforeUpload(file) {
        console.log(file)
      },
    handlePreview(file) {
        console.log(file);
        window.open(file.url);
      },
     handleSuccess(response) {
         console.log(response)
        if (response.code == 0) {
          console.log("导入成功");
          this.$message.success('导入成功');
          this.img[this.key].filevalue[0].name=response.data.name;
          this.img[this.key].filevalue[0].path=response.data.path;
          console.log(this.img);
        } else {
          this.$message.error('上传失败!');
          console.log(response);
        }
      },
      Err() {
        this.$message({
          type: "error",
          message: "文件导入失败"
        });
      },
      }
      }

预览文件实现代码

<!-- 点击预览文件信息 -->
 <span @click="readFile(value,file.path)" >{{file.name}}</span>
 <!--用window.open打开预览的文件,路径是https://view.officeapps.live.com/op/view.aspx加上要预览文件的路径 -->
readFile(k,path){
        console.log(111);
        window.open('https://view.officeapps.live.com/op/view.aspx?src='+path);
      },

以上就是我要分享的vue+element实现上传及预览文件的方法,如果大佬们有更好的方法,欢迎下方评论区畅所欲言!

  • 4
    点赞
  • 43
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值