文件上传

参考:https://blog.csdn.net/funkstill/article/details/104312066

在这里插入图片描述
有以上两种方式:1、直接以文件格式上传,2、转换为base64编码格式上传,但最终服务器返回的都是存储照片的地址

方式1:通过formdata对象完成,过程如下:

let formData = new FormData();
formData.append('chunk', file)//file为需要上传的文件
formData.append("filename",formateFileName(file.name).filename)
最后在使用ajax上传东西时把该formdata实例作为数据上传即可

方式2:通过filereader对象来把文件转换为base64格式再进行上传
//file为需要处理的文件
 function convertBase64(file) {
      return new Promise(resolve => {
        let fileread = new FileReader()
        fileread.readAsDataURL(file)
        fileread.onload = ev => {
          resolve(ev.target.result)
        }
      })
    }

用ajax进行上传,请求方式用post,因为get是把文件附加到url后面的,文件太多这是不可取的

并且注意细节,比如上传文件的格式限制、文件大小的限制,

如果一次性上传的文件太多,不管用哪种方式都得进行分流处理,不然会卡,

扩展:axios是基于promise管理的ajax库,它包含更多情况的配置,上面的封装默认使用post方法,还有get方法,以及服务器响应的情况未进行封装,

在这里插入图片描述

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值