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 相关文章推荐
JavaScript判断两种格式的输入日期的正确性的代码
Mar 25 Javascript
初识JQuery 实例一(first)
Mar 16 Javascript
ff下JQuery无法监听input的keyup事件的解决方法
Dec 12 Javascript
js清空表单数据的两种方式(遍历+reset)
Jul 18 Javascript
实例剖析AngularJS框架中数据的双向绑定运用
Mar 04 Javascript
JS遍历数组和对象的区别及递归遍历对象、数组、属性的方法详解
Jun 14 Javascript
利用Angular+Angular-Ui实现分页(代码加简单)
Mar 10 Javascript
解决React Native端口号修改的方法
Jul 28 Javascript
vue+jquery+lodash实现滑动时顶部悬浮固定效果
Apr 28 jQuery
JavaScript函数apply()和call()用法与异同分析
Aug 10 Javascript
跨域请求两种方法 jsonp和cors的实现
Nov 11 Javascript
Vue.js计算机属性computed和methods方法详解
Oct 12 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
漂亮但不安全的CTB
2006/10/09 PHP
Server.HTMLEncode让代码在页面里显示为源代码
2013/12/08 PHP
PHP统计数值数组中出现频率最多的10个数字的方法
2015/04/20 PHP
非常好的js代码
2006/06/27 Javascript
Firefox div高度自适应
2009/04/28 Javascript
Mootools 1.2教程 设置和获取样式表属性
2009/09/15 Javascript
让firefox支持IE的一些方法的javascript扩展函数代码
2010/01/02 Javascript
用js写了一个类似php的print_r输出换行功能
2013/02/18 Javascript
在Iframe中获取父窗口中表单的值(示例代码)
2013/11/22 Javascript
javascript学习笔记(五)原型和原型链详解
2014/10/08 Javascript
node.js中的fs.writeFile方法使用说明
2014/12/14 Javascript
JS中prototype的用法实例分析
2015/03/19 Javascript
AngularJS基础 ng-show 指令简单示例
2016/08/03 Javascript
NodeJS 实现手机短信验证模块阿里大于功能
2017/06/19 NodeJs
Vue.js学习笔记之常用模板语法详解
2017/07/25 Javascript
详解设置Webstorm 利用babel将ES6自动转码成ES5
2017/12/20 Javascript
Node.js的Koa实现JWT用户认证方法
2018/05/05 Javascript
JavaScript时间与时间戳的转换操作实例分析
2018/12/07 Javascript
JS学习笔记之原型链和利用原型实现继承详解
2019/05/29 Javascript
Python中用psycopg2模块操作PostgreSQL方法
2017/11/28 Python
python简单区块链模拟详解
2019/07/03 Python
Python分割训练集和测试集的方法示例
2019/09/19 Python
python中字符串的编码与解码详析
2020/12/03 Python
浅析HTML5 meta viewport参数
2020/10/28 HTML / CSS
英国婴儿及儿童产品商店:TigerParrot
2019/03/04 全球购物
英国家电购物网站:Sonic Direct
2019/03/26 全球购物
韩国乐天网上商城:Lotte iMall
2021/02/03 全球购物
J2ee常用的设计模式?说明工厂模式
2015/05/21 面试题
管理部副部长岗位职责范文
2014/03/09 职场文书
酒店采购员岗位职责
2014/03/14 职场文书
四下基层实施方案
2014/03/28 职场文书
机关出纳岗位职责
2014/04/03 职场文书
道歉信范文
2015/05/12 职场文书
python文件目录操作之os模块
2021/05/08 Python
在js中修改html body的样式
2021/11/11 Javascript
Javascript webpack动态import
2022/04/19 Javascript