美文网首页大前端
vue项目中使用axios上传图片等文件

vue项目中使用axios上传图片等文件

作者: 叶叶叶xxx | 来源:发表于2019-08-16 14:44 被阅读0次

    首先安装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) {   // 上传照片
          let self = this
          let file = e.target.files[0]
          /* eslint-disable no-undef */
          let param = new FormData()  // 创建form对象
          param.append('file', file)  // 通过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(res => {
              if (res.data.code === 0) {
                self.ImgUrl = res.data.data
              }
              console.log(res.data)
            })
        }
    

    相关文章

      网友评论

        本文标题:vue项目中使用axios上传图片等文件

        本文链接:https://www.haomeiwen.com/subject/olzfsctx.html