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 相关文章推荐
Ext第一周 史上最强学习笔记---GridPanel(基础篇)
Dec 29 Javascript
Javascript attachEvent传递参数的办法
Dec 14 Javascript
javascript获得服务器端控件的ID的实现代码
Dec 28 Javascript
JQquery的一些使用心得分享
Aug 01 Javascript
js实现网页标题栏闪烁提示效果实例分析
Nov 20 Javascript
js实现汉字排序的方法
Jul 23 Javascript
JavaScript中var关键字的使用详解
Aug 14 Javascript
JavaScript电子时钟倒计时第二款
Jan 10 Javascript
举例讲解如何判断JavaScript中对象的类型
Apr 22 Javascript
js实现当鼠标移到表格上时显示这一格全部内容的代码
Jun 12 Javascript
Javascript仿京东放大镜的效果
Mar 01 Javascript
JavaScript引用类型RegExp基本用法详解
Aug 09 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中常量,变量的作用域和生存周期
2013/08/10 PHP
PHP实现加密文本文件并限制特定页面的存取的效果
2016/10/21 PHP
php检查函数必传参数是否存在的实例详解
2017/08/28 PHP
Yii 实现数据加密和解密
2021/03/09 PHP
javascript 事件绑定问题
2011/01/01 Javascript
javascript中自定义对象的属性方法分享
2013/07/12 Javascript
js离开或刷新页面检测(且兼容FF,IE,Chrome)
2014/03/05 Javascript
使用node.js 制作网站前台后台
2014/11/13 Javascript
js实现仿微博滚动显示信息的效果
2015/12/21 Javascript
JS实现1000以内被3或5整除的数字之和
2016/02/18 Javascript
jquery $.trim()去除字符串空格的实现方法【附图例】
2016/03/30 Javascript
React.js中常用的ES6写法总结(推荐)
2017/05/09 Javascript
vue项目强制清除页面缓存的例子
2019/11/06 Javascript
Webpack的Loader和Plugin的区别
2020/11/09 Javascript
微信小程序学习之自定义滚动弹窗
2020/12/20 Javascript
Python正则表达式经典入门教程
2017/05/22 Python
python使用正则表达式替换匹配成功的组
2017/11/17 Python
浅谈Scrapy框架普通反爬虫机制的应对策略
2017/12/28 Python
python使用筛选法计算小于给定数字的所有素数
2018/03/19 Python
实例讲解python中的序列化知识点
2018/10/08 Python
numpy linalg模块的具体使用方法
2019/05/26 Python
Django Rest framework频率原理与限制
2019/07/26 Python
python json load json 数据后出现乱序的解决方案
2020/02/27 Python
利用Python实现斐波那契数列的方法实例
2020/07/26 Python
python之openpyxl模块的安装和基本用法(excel管理)
2021/02/03 Python
Html5基于canvas实现电子签名并生成PDF文档
2020/12/07 HTML / CSS
Stuarts London美国/加拿大:世界领先的独立男装零售商之一
2019/03/18 全球购物
ManoMano英国:欧洲第一家专注于DIY和园艺市场的电商平台
2020/03/12 全球购物
某公司.Net方向面试题
2014/04/24 面试题
高中三年学习生活的自我评价
2013/10/10 职场文书
诉前财产保全担保书
2014/05/20 职场文书
幼儿园教师节演讲稿
2014/09/03 职场文书
三方股份合作协议书
2014/10/13 职场文书
邓小平文选读书笔记
2015/06/29 职场文书
《当代神农氏》教学反思
2016/02/23 职场文书
一波干货,会议主持词开场白范文
2019/05/06 职场文书