关于vue使用form上传文件
在vue中使用form表单上传文件文件的时候出现了一些问题,获取文件的时候一直返回null,
解决之后又出现发送到后台的file文件后台显示为空,解决源码
<template>
<div>
<Row>
<Col :sm="24" :md="24" lg:="24">
<form id="myForm" enctype="multipart/form-data" name="fileinfo" action="" target="uploadFrame"> //这里设置目标为iframe的name,这样提交表单数据的时候就不会刷新页面
<div class="img-file">
<label>请选择上传的文件:</label>
<input @change='changeImg' id='imgFile' type='file'/>
<!-- <input id="submit" type="submit" value="确认上传" /> -->
</div>
</form>
<iframe id="uploadFrame" name="uploadFrame" style="display:none;"></iframe> //解决form表单提交数据刷新问题
<!-- 展示服务器返回的图片 -->
<div class="box1">
<div class="imgbox">
<img class="auto-img" :src='srcs' :id='ids'/>
</div>
<div class="texts" :dates="dates">{{dates}}</div>
</div>
</Col>
</Row>
</div>
</template>
<script>
import Cookies from 'js-cookie';
import axios from 'axios';
import qs from 'qs';
export default{
data(){
return{
//默认图片地址,地址通过动态修改
srcs: 'http://test.laihaiqiang.com/image/timg.jpg',
// 图片id ,为了避免和标签的id冲突,尽量使用别称,如id1,ida等。
ids: 0,
// 创建时间
dates: '',
//文件
file: null,
}
},
methods:{
changeImg(){
var that = this; //这里使用一个变量 that来拼接this,这样的话在内部就使用thar,在外部就使用this,这样就不会出现指向丢失问题。
var file = document.getElementById("imgFile").files[0]; //获取文件
that.file = file; //获取data里面的预设默认file,并把获取到的文件赋给它
var ids = this.ids; //获取ata里面的id
var formData = new FormData(); //构造一个 FormData,把后台需要发送的参数添加到FormData里面,这样就可以直接把formData作为参数传递了
if (file) {
formData.append("access_token", Cookies.get('Admin-Token')); //接口需要传递的参数
formData.append("img", file); //接口需要传递的参数
formData.append("id", ids); //接口需要传递的参数
}
let potss = formData;
let urls = 'http://...........................'; //数据接口
axios.post(urls, potss)
.then(function(reh){
console.log('rehsdddddd===>>>', reh);
})
.catch(function(err){
console.log('err=ssss=>>', err);
})
},
},
created : function(){
var that = this;
console.log('1234567890987654321 ==> ', this.file);
let postToken = qs.stringify({
access_token : Cookies.get('Admin-Token'),
})
let api = 'http://.....................................................';
axios.post(api, postToken)
.then(function(res){
console.log('resss===>>>', res);
console.log('code===>>>', res.data.code);
console.log('message===>>>', res.data.message);
console.log('logo图片地址==>>', res.data.data.img_url);
console.log('logo图片id==>>', res.data.data.id);
console.log('logo图片创建日期==>>', res.data.data.create_time);
// 修改图片的路径
that.srcs = res.data.data.img_url;
//图片创建时间
if(res.data.data.create_time == '' || res.data.data.create_time == null){
that.dates = '';
}else{
that.dates = '添加时间:' + res.data.data.create_time;
}
//图片id
that.ids = res.data.data.id;
})
.catch(function(err){
console.log('err=ssss=>>', err);
})
}
}
</script>
<style scoped>
.imgbox{
width:200px;
height:200px;
margin:0 auto;
border: 1px solid #0f0;
}
.texts{
width:100%;
margin:10px 0 0;
text-align: center;
}
.upbox{
width:100%;
margin:0 auto;
text-align: center;
}
.auto-img{
display: block;
width:100%;
}
.upload{
margin:30px 0;
}
.box1{
width:100%;
}
</style>
关于vue使用form上传文件的更多相关文章
- c# 模拟表单提交,post form 上传文件、大数据内容
表单提交协议规定:要先将 HTTP 要求的 Content-Type 设为 multipart/form-data,而且要设定一个 boundary 参数,这个参数是由应用程序自行产生,它会用来识别每 ...
- c# 模拟表单提交,post form 上传文件、数据内容
转自:https://www.cnblogs.com/DoNetCShap/p/10696277.html 表单提交协议规定:要先将 HTTP 要求的 Content-Type 设为 multipar ...
- 通过form上传文件(php)
前段代码 <html> <head> <meta http-equiv="Content-Type" content="text/html; ...
- form上传文件以及跨域异步上传
要设置了enctype属性才能上传,需要使用上传的jar包,这里使用的是cos-26Dec2008.jar, 而且后台获取值的时候,getfile要放在第一位 一次设置好上传格式后没有上传文件,也就没 ...
- 关于form 上传文件时的小问题
平时的form一般写成这样: <form action=" " method="" id="" name=""&g ...
- 使用vue+iview实现上传文件及常用的下载文件的方法
首先说明一下,我们这次主要用的还是iview的upload上传组件,下面直接上代码 <Upload ref="upload" multiple='true' //是否支持多文 ...
- iframe+form上传文件
<iframe id="iframe1" name="ifra1" style="display: none"></ifr ...
- VUE -- 用组件上传文件和用xmlrequest上传
xmlrequest: sendForm(str, types) { var form = this.$refs.ipas_form; var oOutput = document.querySele ...
- vue.js异步上传文件前后端代码
上传文件前端代码如下: <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type&q ...
随机推荐
- rsync 密钥文件错误问题总结
rsync 可以使用 --password-file 选项指定密钥文件,密钥文件中简单存放 rsync 密码:在第一次使用密钥文件的时候经常遇到文件权限相关问题:这里总结一下,我遇到的问题. 问题描述 ...
- VS2010+OpenMP的简单使用
OpenMP是把程序中的循环操作分给电脑的各个CPU处理器并行进行.比如说我要循环运行100次,我的电脑有两个处理器,那OpenMP就会平均分给两个处理器并行运行,每个处理器运行50次.使用方法 1. ...
- Net Core动态加载webservice/WCF
1.动态加载的目的 前端时间和顺丰对接了个项目(PS:顺丰的开发对外能力真的是掉粉),用的webservice 测试时用的无固定IP访问,正式版需要固定IP访问,我的理解是web服务都是全网络可以访问 ...
- GROUP BY 和 ORDER BY一起使用时的注意点
order by的列,必须是出现在group by子句里的列ORDER BY要在GROUP BY的后面
- SSM-Spring-18:Spring中aspectJ的XML版
------------吾亦无他,唯手熟尔,谦卑若愚,好学若饥------------- aspectJ的xml版是开发中最常用的: 下面直接已案例入手,毕竟繁琐的日子不多了 案例:两个接口,俩个实现 ...
- SSM-Spring-16:Spring中一些名词解释
------------吾亦无他,唯手熟尔,谦卑若愚,好学若饥------------- JoinPoint(连接点):所谓连接点是指那些被拦截到的点.在spring中,这些点指的是方法,因为spri ...
- SSM-MyBatis-18:Mybatis中二级缓存和第三方Ehcache配置
------------吾亦无他,唯手熟尔,谦卑若愚,好学若饥------------- 二级缓存 Mybatis中,默认二级缓存是开启的.可以关闭. 一级缓存开启的.可以被卸载吗?不可以的.一级缓存 ...
- 在Workload Automation中实现suspend分析
1. 背景 这里涉及到两个工具analyze_suspend.py和Workload Automation. 下面analyze_suspend.py简称为ASPY,Workload Automati ...
- TensorFlow练习2: 对评论进行分类
本帖是前一贴的补充: 使用大数据,了解怎么处理数据不能一次全部加载到内存的情况.如果你内存充足,当我没说 训练好的模型的保存和使用 使用的模型没变,还是简单的feedforward神经网络(updat ...
- 跟我学ASP.NET MVC之八:SportsStrore移动设备
摘要: 现在的web程序开发避免不了智能手机和平板电脑上的使用,如果你希望发布你的应用程序给更广大客户使用的话,你将要拥抱可移动web浏览器的世界.向移动设备用户发布一个好的使用体验是很困难的-比只是 ...