• Vue 上传材料(使用input)


    最近工作中接到一个需求,需要上传一个文件材料,提交时传给后端。使用的框架是Vue

    <template>
      <div>
        <input type="file" @change="inputFileChange"> 
        <button type="primary" size="mini" @click="clicks">上传<button>
      </div>
    </template>

    以下为逻辑部分(JavaScript的部分)

    <script>
    import submitfile from "xxxxxx" //要传的后端接口
    export default {
      data () {
        return {
          files:''
        }
      },
    methods: {
    inputFileChange(e){
    this.files = e.target.files[0] //当input中选择文件时触发一个事件并让data当中的files拿到所选择的文件
    },
    click() {
    if(!this.files){
    console.log('请选择文件')
    return
    let fd = new FormData()
    fd.append('file',this.files)
    submitfile(fd).then(res => {
              
            })
    
    }
    } 
    }
    </script>

    以上是主要的代码,还可以对input所选择的文件进行筛选,可以设置选择文件的类型。

    只能选择Excel文件的代码为如以下:

     <input
            ref="fileInput"
            type="file"
            accept="application/vnd.openxmlformats-officedocument.spreadsheetml.sheet, application/vnd.ms-excel"
            @change="handleFileUpload"
          >

    可以定义input的accept属性限制更多的文件类型

    还有分享一个自己踩过的坑:

    1.不能将files直接当成给接口传的参数,要用formdata

    2.定义接口文件中,要注意post接口的传参类型(要注意是不是data)

  • 相关阅读:
    文件拖拽上传
    30天自制操作系统笔记(第三天)
    PAT 1040到底有几个pat
    pat 1039 到底买不买
    pat 1038 统计同成绩学生
    pat 乙级1034
    pat 乙级1022
    pat 乙级1009
    pat 乙级1008
    pat 乙级1002
  • 原文地址:https://www.cnblogs.com/taxpolat/p/11738244.html
Copyright © 2020-2023  润新知