ReactNative axios上传、下载图片

上传文件(支持一次上传多个文件)

let axiosPostRequestCancel = null
function uploadFiles(data, progressCallBack, callBack) {
  let formData = new FormData();

  data.map((item,index)=>{
    let file = {
      uri: 本地文件绝对路径,
      type: 'application/octet-stream',
      name: 文件名字
    };
    formData.append("file", file);
  })
  let config = {
    //添加请求头
    headers: { "Content-Type": "multipart/form-data" },
    timeout: 600000,
    //添加上传进度监听事件
    onUploadProgress: e => {
      let completeProgress = (e.loaded / e.total * 100) | 0;
      progressCallBack && progressCallBack(completeProgress)
    },
    cancelToken: new axios.CancelToken(function executor(c) {
      axiosPostRequestCancel = c // 用于取消上传
    })
  };

  axios.post(接口地址, formData, config)
  .then(
    function (response)
    {
      callBack && callBack(true, response)
    })
    .catch(function (error) {
      callBack && callBack(false)
    });
}

/**
 * [cancelAxiosRequest 取消axios post请求]
 */
function cancelAxiosRequest(){
  axiosPostRequestCancel && axiosPostRequestCancel('cancel')
  axiosPostRequestCancel = null
}

下载图片

global.Buffer = global.Buffer || require('buffer').Buffer

  axios.get(imageUri,{responseType:'arraybuffer'})
  .then((response)=> Buffer.from(response.data, 'binary').toString('base64'))
  .then((res)=>{
    console.log('data:image/jpeg;base64,'+res);
  }).catch(e=>{
    console.log('eeee=',e);
  })

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Swift1> Swift和OC的区别1.1> Swift没有地址/指针的概念1.2> 泛型1.3> 类型严谨 对...
    cosWriter阅读 11,174评论 1 32
  • [[图片上传失败...(image-cae8e3-1541926581609)]](file://C:\Users...
    沉默的大多数1876阅读 9,013评论 0 12
  • 点击查看原文 Web SDK 开发手册 SDK 概述 网易云信 SDK 为 Web 应用提供一个完善的 IM 系统...
    layjoy阅读 14,033评论 0 15
  • 文/胡妖儿 不去撩拨轮渡编织的波光 不去理会红尘的烟火向哪个方向飘荡只为取悦还在跳动的心房站在四十四桥上把心事摊开...
    容颜定格阅读 248评论 0 0
  • 平行世界,多元生活,既可以朝九晚五,又能够浪迹天涯。 自己尝试,自己选择吧,先尝试,再选择,认准方向后,作死的撑住...
    唯花与物阅读 185评论 0 0