vue上传文件(原生方法)
前言:
- 组件库的文件上传不适合项目,这里我们利用input标签实现文件上传
- 首先input type=file 标签是这个亚子的,而且样式不能改,我们利用css的方法,将一个定位到这个下面来,然后input标签opcity:0,就哦了


用法:
- input的accept属性,支持选择的文件类型,win系统上,如果不是这个类型的文件,选择文件的时候是看不到的,并绑定ref属性
- 利用inut的change事件,当选择文件的时候触发change事件,通过ref属性找到选择的文件对象(如下图),自己尝试着打印试试,这个就是后端需要的文件(包括文件名,大小等)
- 然后上传文件的时候需要 new FormData() 得到实例对象,然后往这个实例对象里面append添加属性就好了,这里的属性就是后台需要的参数,调用接口即可
- 必要的时候清空input的value,因为我们把input通过css opcity:0,看不到了,例如我们上传成功后应当清空input的value,如果不清空的话,其实选择的文件还是在的
multiple 属性可实现多文件上传

1 <template>
2 <div id="app">
3 <div class="selectfile">选择文件</div>
4 <input accept=".png, .jpg" type="file" ref="file" @change="selectFile" />
5 </div>
6 </template>
7
8 <script>
9 export default {
10 name: "app",
11 data() {
12 return {
13 filename: '',
14 selectFileobj: null
15 }
16 },
17 methods: {
18 // 选择文件
19 selectFile(e) {
20 console.log(this.$refs["file"].files);
21 console.log(this.$refs["file"].files[0]);
22 if (this.$refs["file"].files[0]) {
23 this.filename = this.$refs["file"].files[0].name;
24 this.selectFileobj = this.$refs["file"].files[0];
25 } else {
26 this.filename = "";
27 }
28 },
29
30 // 上传按钮
31 async Tofileupload() {
32 if (this.selectFileobj) {
33 let fd = new FormData();
34 fd.append("file", this.selectFileobj);
35 // fd.append("userId", this.userInfo.userId);
36
37 // const res = await importExcel(fd); // 调用接口实现文件上传
38 } else {
39 this.$message.warning("请选择要上传的文件");
40 }
41 },
42
43 // this.$refs['file'].value = '' // 必要的时候记得将选择的文件清空
44 },
45 };
46 </script>
vue上传文件(原生方法)的更多相关文章
- vue 上传文件 和 下载文件
Vue上传文件,不必使用什么element 的uplaod, 也不用什么npm上找的个人写的包,就用原生的Vue加axios就行了, 废话不多说,直接上代码:html: <input type= ...
- vue 上传文件 和 下载文件 面试的时候被问到过
Vue上传文件,不必使用什么element 的uplaod, 也不用什么npm上找的个人写的包,就用原生的Vue加axios就行了, 废话不多说,直接上代码:html: <input type= ...
- 朋友封装的一个ASP.NET上传文件的方法
朋友做了asp.net开发多年,做了这个,自我感觉封装得还不错!!! 代码如下: #region 上传文件的方法 /// <summary> /// 上传文件方法 /// </sum ...
- MUI上传文件的方法
<!doctype html> <html> <head> <meta charset="UTF-8"> <title> ...
- 使用jquery插件uploadify上传文件的方法与疑问
我是学生一枚,专业也不是计算机,但又要用到很多相关技术,所以在技术基础不牢靠的情况下,硬着头皮在做.最近在做一个小项目需要上传图片,而且是需要用ajax的方式.但是利用jquery的ajax方法总会有 ...
- axios+Vue上传文件显示进度
一,前言 最近在用Vue,然后上传文件时需要显示进度,于是网上搜了一下,经过自己实测终于也弄明白了 二,效果 三,代码 HTML代码 <div id="app"> &l ...
- Vue上传文件:ElementUI中的upload实现
一.上传文件实现 两种实现方式: 1.直接action <el-upload .利用before-upload属性 此种方式有个弊端,就是action是必选的参数,那么action如果和pos ...
- vue上传文件
<div> <input type="file" class="file" name="file" @change=&qu ...
- Laravel操作上传文件的方法
1.获取上传的文件 $file=$request->file('file');2.获取上传文件的文件名(带后缀,如abc.png) $filename=$file->getClientOr ...
- vue+上传文件夹
在做项目开发的时候,上传东西无论文件也好,还是文件夹都需要用到 <input type="file" id="filepicker" name=" ...
随机推荐
- ABP vNext微服务架构详细教程——简介
概述 该系列文章主要展示ABP vNext框架在微服务架构下的用法,提供一套可落地的技术实现思路,并演示各服务在Kubernetes下的部署方案. 基础概念 ABP vNext:基于ASP.NET C ...
- jxg项目Day2-git
申请了我自己的gitee账号,建了我的仓库,在idea中点这个,然后就算漫长的自动下载的过程.. 对分支和冲突的理解:每个人都有自己的develop分支,可以commit到本地的分支,可以push到远 ...
- 在winodws server r2上安装AD域
一.创建第一个域 服务器管理-管理--添加角色和功能 其他都是默认值,下一步 二.重启后,已域账号登录 三.检查AD域有没有安装成功 1.查看计算机名 更改计算机名 2.检查是否含有以下,AD管理中心 ...
- Word 给公式添加题注解决交叉引用中包含公式
简记:回车,然后 Ctrl +Alt+Enter https://blog.csdn.net/wsj_jerry521/article/details/115163456
- PostgreSQL 数组类型使用详解
PostgreSQL 数组类型使用详解 PostgreSQL 数组类型使用详解 可能大家对 PostgreSQL 这个关系型数据库不太熟悉,因为大部分人最熟悉的,公司用的最多的是 MySQL 我们先对 ...
- .Net中跨域问题的解决方案
开发中前端与后端完全分离并分开发布,遇到跨域问题,一通百度之后,解决方案如下: 把下面的代码放在web.config文件中的 System.WebServer 节点下 <httpProtocol ...
- django 批量提交
https://www.cnblogs.com/lbzbky/articles/11792545.html
- pragma pack(字节对齐用法)---C语言
#pragma pack(4) typedef struct { char buf[3]; word a; }kk; #pragma pack() 对齐的原则是min(sizeof(word ),4) ...
- GO语言学习笔记-方法篇 Study for Go ! Chapter five - Method
持续更新 Go 语言学习进度中 ...... GO语言学习笔记-类型篇 Study for Go! Chapter one - Type - slowlydance2me - 博客园 (cnblogs ...
- PGF 概率生成函数 Probability generating function
Probability Mass Function 离散随机变量的分布函数PMF 目录 随机结构举例 two classical combinatorial distributions PGF Pro ...