React Native使用fetch实现图片上传的示例代码


Posted in Javascript onMarch 07, 2018

本文介绍了React Native使用fetch实现图片上传的示例代码,分享给大家,具体如下:

普通网络请求参数是JSON对象

图片上传的请求参数使用的是formData对象

使用fetch上传图片代码封装如下:

let common_url = 'http://192.168.1.1:8080/'; //服务器地址
let token = '';  //用户登陆后返回的token
/** 
 * 使用fetch实现图片上传
 * @param {string} url 接口地址
 * @param {JSON} params body的请求参数
 * @return 返回Promise 
 */
function uploadImage(url,params){
  return new Promise(function (resolve, reject) {
    let formData = new FormData();
    for (var key in params){
      formData.append(key, params[key]);
    }
    let file = {uri: params.path, type: 'application/octet-stream', name: 'image.jpg'};
    formData.append("file", file);
    fetch(common_url + url, {
      method: 'POST',
      headers: {
        'Content-Type': 'multipart/form-data;charset=utf-8',
        "x-access-token": token,
      },
      body: formData,
    }).then((response) => response.json())
      .then((responseData)=> {
        console.log('uploadImage', responseData);
        resolve(responseData);
      })
      .catch((err)=> {
        console.log('err', err);
        reject(err);
      });
  });
}

使用方法

let params = {
  userId:'abc12345',  //用户id
  path:'file:///storage/emulated/0/Pictures/image.jpg'  //本地文件地址
}
uploadImage('app/uploadFile',params )
  .then( res=>{
    //请求成功
    if(res.header.statusCode == 'success'){
      //这里设定服务器返回的header中statusCode为success时数据返回成功
      upLoadImgUrl = res.body.imgurl; //服务器返回的地址
    }else{
       //服务器返回异常,设定服务器返回的异常信息保存在 header.msgArray[0].desc
      console.log(res.header.msgArray[0].desc);
    }
  }).catch( err=>{ 
     //请求失败
  })

注意:由于后台服务器配置的不同,
let file = {uri: params.path, type: 'application/octet-stream', name: 'image.jpg'}中的type也可能是multipart/form-data
formData.append("file", file)中的的file字段也可能是images

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
用htc组件制作windows选项卡
Jan 13 Javascript
用于判断用户注册时,密码强度的JS代码
Jan 01 Javascript
jquery下为Event handler传递动态参数的代码
Jan 06 Javascript
javascript 星级评分效果(手写)
Dec 24 Javascript
JS 各种网页尺寸判断实例方法
Apr 18 Javascript
ionic由于使用了header和subheader导致被遮挡的问题的两种解决方法
Sep 22 Javascript
详解angularjs结合pagination插件实现分页功能
Feb 10 Javascript
详解使用Node.js 将txt文件转为Excel文件
Jul 05 Javascript
vue系列之requireJs中引入vue-router的方法
Jul 18 Javascript
vue动态删除从数据库倒入列表的某一条方法
Sep 29 Javascript
详解Vue组件之作用域插槽
Nov 22 Javascript
Angular使用Restful的增删改
Dec 28 Javascript
使用vue制作探探滑动堆叠组件的实例代码
Mar 07 #Javascript
基于vue-cli 打包时抽离项目相关配置文件详解
Mar 07 #Javascript
关于Vue的路由权限管理的示例代码
Mar 06 #Javascript
vue.js在标签属性中插入变量参数的方法
Mar 06 #Javascript
基于Vue中点击组件外关闭组件的实现方法
Mar 06 #Javascript
解决vue build打包之后首页白屏的问题
Mar 06 #Javascript
vue2.0 路由不显示router-view的解决方法
Mar 06 #Javascript
You might like
php入门学习知识点四 PHP正则表达式基本应用
2011/07/14 PHP
浅谈PHP强制类型转换,慎用!
2013/06/06 PHP
PHP 模拟登陆功能实例详解
2019/09/10 PHP
JQuery 文本框回车跳到下一个文本框示例代码
2013/08/30 Javascript
实现动画效果核心方式的js代码
2013/09/27 Javascript
jQuery 获取、设置HTML或TEXT内容的两种方法
2014/05/23 Javascript
浅谈jQuery中Ajax事件beforesend及各参数含义
2016/12/03 Javascript
最常见和最有用的字符串相关的方法详解
2017/02/06 Javascript
整理关于Bootstrap表单的慕课笔记
2017/03/29 Javascript
jQuery选择器_动力节点Java学院整理
2017/07/05 jQuery
基于javaScript的this指向总结
2017/07/22 Javascript
Angular5集成eventbus的示例代码
2018/07/19 Javascript
JS实现点击生成UUID的方法完整实例【基于jQuery】
2019/06/12 jQuery
js利用iframe实现选项卡效果
2020/08/09 Javascript
python使用rabbitmq实现网络爬虫示例
2014/02/20 Python
跟老齐学Python之Import 模块
2014/10/13 Python
django如何连接已存在数据的数据库
2018/08/14 Python
人工神经网络算法知识点总结
2019/06/11 Python
django框架model orM使用字典作为参数,保存数据的方法分析
2019/06/24 Python
Python使用指定端口进行http请求的例子
2019/07/25 Python
Python中pymysql 模块的使用详解
2019/08/12 Python
利用django model save方法对未更改的字段依然进行了保存
2020/03/28 Python
解决pip install psycopg2出错问题
2020/07/09 Python
如何让PyQt5中QWebEngineView与JavaScript交互
2020/10/21 Python
Tripadvisor新西兰:阅读评论,比较价格和酒店预订
2018/02/10 全球购物
LEGO玩具英国官方商店:LEGO Shop GB
2018/03/27 全球购物
德国药房apodiscounter中文官网:德国排名前三的网上药店
2019/06/03 全球购物
JAVA代码查错题
2014/10/10 面试题
酒店前厅员工辞职信
2014/01/08 职场文书
信息专业大学生自我评价分享
2014/01/17 职场文书
五年级学生评语
2014/04/22 职场文书
文秘自荐信
2014/06/28 职场文书
2015年采购员工作总结
2015/04/27 职场文书
python机器学习Github已达8.9Kstars模型解释器LIME
2021/11/23 Python
Python中time与datetime模块使用方法详解
2022/03/31 Python
Javascript webpack动态import
2022/04/19 Javascript