vue项目中使用axios上传图片等文件操作
axios简介
axios是一个基于Promise用于浏览器和nodejs的HTTP客户端,它本身具有以下特征:
从浏览器中创建XMLHttpRequest
从node.js发出http请求
支持PromiseAPI
拦截请求和响应
转换请求和响应数据
取消请求
自动转换JSON数据
客户端支持防止CSRF/XSRF
首先安装axios:
1.利用npm安装npminstallaxios–save
2.利用bower安装bowerinstallaxios–save
3.直接利用cdn引入
一般情况上传照片有两种方式:
1.本地图片转换成base64,然后通过普通的post请求发送到服务端。
操作简单,适合小图,以及如果想兼容低版本的ie没办法用此方法
2.通过form表单提交。
form表单提交图片会刷新页面,也可以时form绑定到一个隐藏的iframe上,可以实现无刷新提交数据。
这里只讲解一下第二种方式:
html代码:
js代码:
importaxiosfrom'axios' //添加请求头 update(e){//上传照片 varself=this letfile=e.target.files[0] /*eslint-disableno-undef*/ letparam=newFormData()//创建form对象 param.append('file',file,file.name)//通过append向form对象添加数据 param.append('chunk','0')//添加form表单中其他数据 console.log(param.get('file'))//FormData私有类对象,访问不到,可以通过get判断值是否传进去 letconfig={ headers:{'Content-Type':'multipart/form-data'} } //添加请求头 axios.post('http://172.19.26.60:8081/rest/user/headurl',param,config) .then(response=>{ if(response.data.code===0){ self.ImgUrl=response.data.data } console.log(response.data) }) }
总结
以上所述是小编给大家介绍的vue项目中使用axios上传图片等文件,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对毛票票网站的支持!