vue项目中使用axios上传图片等文件操作
程序员文章站
2022-04-09 21:20:03
axios 简介
axios 是一个基于promise 用于浏览器和 nodejs 的 http 客户端,它本身具有以下特征:
从浏览器中创建 xmlhttpreque...
axios 简介
axios 是一个基于promise 用于浏览器和 nodejs 的 http 客户端,它本身具有以下特征:
从浏览器中创建 xmlhttprequest
从 node.js 发出 http 请求
支持 promise api
拦截请求和响应
转换请求和响应数据
取消请求
自动转换json数据
客户端支持防止 csrf/xsrf
首先安装axios:
1.利用npm安装npm install axios –save
2.利用bower安装bower install axios –save
3.直接利用cdn引入
<script src="https://unpkg.com/axios/dist/axios.min.js"></script>
一般情况上传照片有两种方式:
1.本地图片转换成base64,然后通过普通的post请求发送到服务端。
操作简单,适合小图,以及如果想兼容低版本的ie没办法用此方法
2.通过form表单提交。
form表单提交图片会刷新页面,也可以时form绑定到一个隐藏的iframe上,可以实现无刷新提交数据。
这里只讲解一下第二种方式:
html代码:
<input name="file" type="file" accept="image/png,image/gif,image/jpeg" @change="update"/>
js代码:
import axios from 'axios' // 添加请求头 update (e) { // 上传照片 var self = this let file = e.target.files[0] /* eslint-disable no-undef */ let param = new formdata() // 创建form对象 param.append('file', file, file.name) // 通过append向form对象添加数据 param.append('chunk', '0') // 添加form表单中其他数据 console.log(param.get('file')) // formdata私有类对象,访问不到,可以通过get判断值是否传进去 let config = { 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上传图片等文件,希望对大家有所帮助
上一篇: React Native 通告消息竖向轮播组件的封装
下一篇: 微信小程序选择图片和放大预览图片功能