首页 > 其他分享 >VUE 二进制文件流方式传递文件

VUE 二进制文件流方式传递文件

时间:2023-11-23 15:37:40浏览次数:29  
标签:文件 VUE return form 二进制 file reader

<template>
  <div>
    <el-form :model="form" ref="myForm" label-width="80px">
      <el-form-item label="姓名" prop="name">
        <el-input v-model="form.name"></el-input>
      </el-form-item>
      <el-form-item label="年龄" prop="age">
        <el-input v-model="form.age"></el-input>
      </el-form-item>
      <el-form-item label="上传Excel表单">
        <el-upload
          class="avatar-uploader"
          action="#"
          :show-file-list="false"
          :http-request="httpRequest"
          accept=".pdf, .doc,.docx,.xls,.xlsx,.ppt,.pptx,.txt,.html"
  
          :before-upload="beforeUpload"
          
        >
          <p><el-button type="primary" size="medium" class="uploadBtn">选择文档</el-button></p>
        </el-upload>
      </el-form-item>
      <el-form-item>
        <el-button type="primary" @click="handleSubmit">提交</el-button>
      </el-form-item>
    </el-form>
  </div>
</template>

<script>
export default {
  data() {
    return {
      form: {
        name: '',
        age: '',
        file: null,
      },
    };
  },
  methods: {
    beforeUpload(file) {
      return new Promise((resolve, reject) => {
        const reader = new FileReader();

        reader.onload = (event) => {
          // 将文件转换为二进制数据
          const binaryData = event.target.result;
          this.form.file = binaryData;

          // 解析 Promise 以允许上传
          resolve(file);
        };

        reader.onerror = (error) => {
          // 如果有错误,拒绝 Promise
          reject(error);
        };

        // 以二进制形式读取文件
        reader.readAsBinaryString(file);
      });
    },
    changeFile(file, fileList) {
      // 处理文件变更,如果需要的话
    },
    httpRequest() {
      // 在这里实现自定义的 HTTP 请求逻辑
    },
    handleSubmit() {
      // 访问二进制文件数据在 this.form.file 中,并提交表单
      // 在这里实现你的表单提交逻辑
      console.log(this.form);
      return;
    },
  },
};
</script>

 

标签:文件,VUE,return,form,二进制,file,reader
From: https://www.cnblogs.com/qutao125/p/17851640.html

相关文章

  • java 实现文件夹上传(springBoot 框架)
    java实现文件夹上传(springBoot框架)有时我们后台管理等服务可能会有这样一个简单需求,就是根据文件夹将整个文件夹下的所有资源都上传到我们的服务器上,本人也是搜索了大量资料,最终以最简单便捷的方式实现该功能,具体操作步骤如下一、前端如何设置上传组件并将资源上传到后台服务这......
  • windows版本--人大金仓数据库连接报错----启动----及替换过期的授权文件
       启动服务命令:1、找到安装目录下server的bin进行cmd C:\ProgramFiles\Kingbase\ES\V8\KESRealPro\V008R006C007B0012\Server\bin2、执行命令:sys_ctl.exe-D"data的存放目录"startsys_ctl.exe-D"C:\ProgramFiles\Kingbase\ES\V8\data"start 3、去官网根......
  • 在Vue中使用Mock.js虚拟接口数据实例详解
     在Vue项目中使用Mock.js可以方便地模拟接口数据,用于前端开发和测试。Mock.js是一个生成随机数据的库,可以帮助我们快速构建虚拟接口数据。在本文中,我将通过一个实例来详细讲解在Vue中使用Mock.js虚拟接口数据的方法。首先,我们需要创建一个Vue项目。可以使用VueCLI来快速创建......
  • Java读取文件-BufferedReader/FileReader/InputStreamReader/FileInputStream的关系和
    本文根据文章:https://blog.csdn.net/wjp0000/article/details/117771752进行修改一、Java读取和存储文件数据流Java读取文件,实际是将文件中的字节流转换成字符流输出到屏幕的过程这里面涉及到两个类:InputStreamReader和OutputStreamWriterInputStreamReader:将字节流转换成字......
  • Vue 实现一个拖拽功能(指令)
    用Vue实现一个拖拽功能,以指令的方式被调用。使用Vue的自定义指令(directive)来实现拖拽功能。一下是Vue代码示例:<template><div><divv-draggable>拖拽我</div></div></template><script>exportdefault{directives:{draggable:{moun......
  • 直播系统源代码,vue实现无缝滚动
    直播系统源代码,vue实现无缝滚动一、采用js的方法实现 <template><div><divclass="box"><divv-for="itemin2"class="item-box":style="{transform:'translate(0,'+scrollTop+'px)'}"><divclass=&......
  • 直播平台源码,vue图片中划框截取部分图片
    直播平台源码,vue图片中划框截取部分图片 <template> <div>  <el-dialogtitle="请在图片上画出需要新增故障的位置":visible.sync="dialogVisible"width="1270px":before-close="handleClose":close-on-click-modal="false":close......
  • Linux服务器远程文件拷贝两种方法介绍
    假设有两台linux服务器,如何将111.22.3.64上的/usr/local/example-server目录下的所有文件和目录拷贝到55.166.77.246的/usr/local/example-server目录下?  Linux服务器远程文件拷贝两种方法介绍要从一个Linux服务器拷贝文件到另一个Linux服务器,可以使用scp命令或rsync命令。以下是......
  • Vue自定义页面路由
    错误1:webpackEmptyContext(evalat./src/store/modulessyncrecursive(0.js:10),<anonymous>:2:10)路由信息由后端给出,那么前端需要动态加载路由,同时component的路径也是后端给出,但是动态加载该路径会报错//假如path='@/views/user'constcom=()=>import(path)//这......
  • VUE组件使用
    vue组件使用分三步: 1.引用组件importfacePopfrom'./components/facePop'2.注册组件components={facePop}3.使用组件<facePop></facePop>新建一个components文件夹存放组件src/components/facePop.vue<template><div><h2>我是一个facePop组......