html:

将文件拖到此处,或点击上传仅允许导入 pdf格式 文件,单次只可上传1个pdf文件

js:

import { getToken } from "@/utils/auth";data() {return {// 导入参数upload: {// 是否显示弹出层(导入)open: false,// 弹出层标题(导入)title: "",// 是否禁用上传isUploading: false,// 是否更新已经存在的用户数据updateSupport: 0,// 设置上传的请求头部headers: {Authorization: "Bearer " + getToken()},// 上传的地址url: process.env.VUE_APP_BASE_API + "/system/user/importData"},}},methods: {// 只能上传单个文件,选择文件覆盖原有文件changeUpload(file, fileList) {if (fileList.length > 1 && file.status !== "fail") {fileList.splice(0, 1);// 多选并上传多个文件:// 方法一:fileList.splice(0, n)。n:多选文件的数量。--数组从前往后顺序截取。// 方法二:fileList.splice(0, -n)。n:多选文件的数量。--数组从后往前顺序截取(保留最新上传的,截去之前上传的。--方法一反之)} else if (file.status === "fail") {this._err("上传失败,请重新上传!");fileList.splice(0, 1);}},// 上传文件 - 文件上传中处理handleFileUploadProgress(event, file, fileList) {// multiple属性(单次可上传多个文件),可打开注释部分,功能为:上传第一个文件开始,isUploading 置为 true,到最后一个文件上传完成,isUploading 变为 fasle。否则控制台会报 "status" 的错// if (file == fileList[0]) {this.upload.isUploading = true;// }},// 上传文件 - 文件失败处理handleFileError(event, file, fileList) {// multiple属性(单次可上传多个文件),可打开注释部分,功能为:上传第一个文件开始,isUploading 置为 true,到最后一个文件上传完成,isUploading 变为 fasle。否则控制台会报 "status" 的错// if (file == fileList[0]) {// this.upload.isUploading = false;// }},// 上传文件 -文件上传成功处理handleFileSuccess(res, file, fileList) {console.log(34, file, fileList)if (res.code == 200) {//multiple属性(单次可上传多个文件),可打开注释部分,功能为:最后一个文件上传完成后,清空列表。// if (file == fileList[fileList.length - 1]) {// 清空上传文件列表,否则影响上传文件数限制判断this.$refs.upload.clearFiles();// }// this._success('上传成功')//提示语:上传成功。根据实际情况来this.getList() //刷新列表。根据实际情况来} else {// 同上// if (file == fileList[fileList.length - 1]) {// 清空上传文件列表,否则影响上传文件数限制判断this.$refs.upload.clearFiles();// }this._err(res.msg)}this.upload.open = false;// 不在上面 if else 中控制,也可以放在这里。功能同上。// if (file == fileList[fileList.length - 1]) {// // 上传第一个文件开始,isUploading 置为 true,到最后一个文件上传完成,isUploading 变为 fasle。否则控制台会报 "status" 的错this.upload.isUploading = false;// }},// 上传文件 - 提交上传文件submitFileForm() {this.$refs.upload.submit();},}

auth文件:

import Cookies from 'js-cookie'//需先npm install js-cookie 安装,安装后package.json文件中会有"js-cookie": "3.0.1"安装版本的显示。const TokenKey = 'Admin-Token'const ExpiresInKey = 'Admin-Expires-In'// 此方法为vue文件中引入的 getToken() 方法export function getToken() {return Cookies.get(TokenKey)}export function setToken(token) {return Cookies.set(TokenKey, token)}export function removeToken() {return Cookies.remove(TokenKey)}export function getExpiresIn() {return Cookies.get(ExpiresInKey) || -1}export function setExpiresIn(time) {return Cookies.set(ExpiresInKey, time)}export function removeExpiresIn() {return Cookies.remove(ExpiresInKey)}