IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> JavaScript知识库 -> axios上传文件 -> 正文阅读

[JavaScript知识库]axios上传文件

1、request.js

import axios from 'axios'
// eslint-disable-next-line no-unused-vars
import { Message } from 'element-ui'
// import store from '@/store'
// create an axios instance
let base = ''
// 判断环境变量
if (process.env.NODE_ENV === 'production') {
  base = ''
} else {
  base = '/api'
}
const service = axios.create({
  baseURL: base // url = base url + request url
  // withCredentials: true, // send cookies when cross-domain requests
  // timeout: 5000 // request timeout
})

// request interceptor
service.interceptors.request.use(
  config => {
    // do something before request is sent

    // if (store.getters.token) {
    // let each request carry token
    // ['X-Token'] is a custom headers key
    // please modify it according to the actual situation
    // config.headers['X-Token'] = getToken()
    // }
    return config
  },
  error => {
    // do something with request error
    console.log(error) // for debug
    return Promise.reject(error)
  }
)

// response interceptor
service.interceptors.response.use(
  response => {
    return response.data
  },
  error => {
    console.log('err' + error) // for debug
    Message({
      message: error.message,
      type: 'error',
      duration: 5 * 1000
    })
    return Promise.reject(error)
  }
)

export default service

2、api文件夹下的home.js

// 引入request.js
import request from '@/utils/request'
const api = {
  remove: '/remove',
  exportModel: '/exportModel',
  upLoadExcel: '/upLoadExcel'
}

// 删除
export function batchRemoveExecute(param) {
  return request({
    url: api.remove,
    method: 'delete',
    params: param,
  })
}
// 导出/下载
export function exportModel(param) {
  return request({
    url: api.exportModel,
    method: 'post',
    // params: param
    data: param,
    responseType: 'blob',
  })
}
// 上传/导入 Excel
export function upLoadExcel(param) {
  return request({
    url: api.upLoadExcel,
    method: 'post',
    // params: param
    data: param,
    headers: { 'Content-Type': 'multipart/form-data;charset=utf-8' },
  })
}

3、vue文件

<template>
  <div id="home">
    <div class="content">
      <el-upload
        slot="append"
        action="#"
        :auto-upload="false"
        :show-file-list="false"
        accept="application/msexcel,application/vnd.openxmlformats-officedocument.spreadsheetml.sheet,application/vnd.ms-excel"
        :on-change="upLoadExcel"
      >
        <el-button size="medium">
          <i class="iconfont iconexcel"></i> Excel导入
        </el-button>
      </el-upload>
    </div>
  </div>
</template>

<script>
import * as api from '../../api/home'
export default {
  name: 'home',
  components: {},
  data() {
    return {};
  },
  created() {},
  watch: {},
  mounted() {},
  methods: {
    // Excel导入
    upLoadExcel(file, fileList) {
      // 文件上传前做一下判断
      // const type_ALLOWD = ['doc', 'docx', 'txt', 'xls', 'xlsx', 'text', 'pdf']
      const type_ALLOWD = ['xls', 'xlsx']
      const fileType = file.raw.name.substring(
        file.raw.name.lastIndexOf('.') + 1
      )
      // 判断文件格式
      if (type_ALLOWD.indexOf(fileType) === -1) {
        this.$message({
          showClose: true,
          message: "只能上传以'.xls'、 '.xlsx'结尾的文件,请重新上传!",
          type: 'error',
          showClose: true
        });
      } else {
        let formData = new FormData()
        formData.append('file', file.raw)
        api.upLoadExcel(formData).then((res) => {
          let data = res.toString()
          if (data === '0') {
            this.$message({
              showClose: true,
              message: '导入成功!',
              type: 'success',
              showClose: true
            });
          } else {
            // 导入失败
          }
        })
      }
    }
  }
}
</script>

<style lang="less" scoped></style>

  JavaScript知识库 最新文章
ES6的相关知识点
react 函数式组件 & react其他一些总结
Vue基础超详细
前端JS也可以连点成线(Vue中运用 AntVG6)
Vue事件处理的基本使用
Vue后台项目的记录 (一)
前后端分离vue跨域,devServer配置proxy代理
TypeScript
初识vuex
vue项目安装包指令收集
上一篇文章      下一篇文章      查看所有文章
加:2022-05-01 15:38:21  更:2022-05-01 15:41:26 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/23 22:06:17-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码