vueaxios上传文件到服务器,vue+axios上传图片文件和数据

本文介绍了在Vue.js项目中如何使用Axios上传图片文件和数据到Django服务器。原本打算通过base64编码传递图片,但发现后台需要文件流。通过创建FormData对象并利用axios的put方法实现了异步文件上传,同时附带了其他字段的数据。在上传过程中,浏览器自动设置了合适的content-type。
摘要由CSDN通过智能技术生成

项目中需要上传图片到服务器。最初思路使用input选择图片后获取base64,直接传送base64编码到后台。

在change方法里边通过FileReader()获取base64就完事了.

headImgChange( e ) {

let self = this;

let reader = new FileReader();

reader.readAsDataURL( e.target.files[ 0 ] );

reader.onload = function ( e ) {

self.headImg = e.target.result; //img base64

}

}

后面在axios.put的时候才知道后台同学使用的Django检验的是一个文件流,大概是文件流吧,据他说法需要用form表单提交.

为了顺便弄清楚form表单和ajax,决定用ajax代替form表单提交上传文件。

最浅显的区别就是form有action属性,会发生页面跳转刷新,ajax则异步请求,刷新局部。

于是一查,使用new formData();可以实现表单提交;

let data = new FormData();

data.append("user_pic",userPic); //图片

data.append("gender",gender === "男"? 1 : 0); //性别

data.append("mobile",phone); //手机号码

data.append("nickname",username); //

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值