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 相关文章推荐
jQuery获取和设置表单元素的方法
Feb 14 Javascript
常见浏览器多长时间会提示“脚本运行时间过长”总结
Apr 29 Javascript
Jquery中扩展方法extend使用技巧
Aug 24 Javascript
JavaScript自定义数组排序方法
Feb 12 Javascript
js获取html的span标签的值方法(超简单)
Jul 26 Javascript
AngularJS 模块详解及简单实例
Jul 28 Javascript
关于vue.js过渡css类名的理解(推荐)
Apr 10 Javascript
JS验证全角与半角及相互转化的介绍
May 18 Javascript
详解如何构建Angular项目目录结构
Jul 13 Javascript
Vue v2.4中新增的$attrs及$listeners属性使用教程
Jan 08 Javascript
vue.js+element 默认提示中英文操作
Nov 11 Javascript
使用vue-element-admin框架从后端动态获取菜单功能的实现
Apr 29 Vue.js
使用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
PHP5权威编程阅读学习笔记 附电子书下载
2012/07/05 PHP
PHP如何通过传引用的思想实现无限分类(代码简单)
2015/10/13 PHP
Json_decode 解析json字符串为NULL的解决方法(必看)
2017/02/17 PHP
PHP简单读取xml文件的方法示例
2017/04/20 PHP
php中通用的excel导出方法实例
2017/12/30 PHP
laravel框架中视图的基本使用方法分析
2019/11/23 PHP
让firefox支持IE的一些方法的javascript扩展函数代码
2010/01/02 Javascript
一些相见恨晚的 JavaScript 技巧
2010/04/25 Javascript
利用Javascript判断操作系统的类型实现不同操作系统下的兼容性
2013/01/29 Javascript
javascript之typeof、instanceof操作符使用探讨
2013/05/19 Javascript
jquery中获取元素里某一特定子元素的代码
2014/12/02 Javascript
[原创]Bootstrap 中下拉菜单修改成鼠标悬停直接显示
2016/04/14 Javascript
js创建数组的简单方法
2016/07/27 Javascript
实例解析jQuery工具函数
2016/12/01 Javascript
jQuery动态添加li标签并添加属性和绑定事件方法
2018/02/24 jQuery
vue实现随机验证码功能的实例代码
2019/04/30 Javascript
layui写后台表格思路和赋值用法详解
2019/11/14 Javascript
[00:56]跨越时空加入战场 全新祈求者身心“失落奇艺侍祭”展示
2019/07/20 DOTA
python操作 hbase 数据的方法
2016/12/18 Python
python分块读取大数据,避免内存不足的方法
2018/12/10 Python
python列表使用实现名字管理系统
2019/01/30 Python
Python使用scipy模块实现一维卷积运算示例
2019/09/05 Python
Python远程开发环境部署与调试过程图解
2019/12/09 Python
python MultipartEncoder传输zip文件实例
2020/04/07 Python
python实现在列表中查找某个元素的下标示例
2020/11/16 Python
python 实现超级玛丽游戏
2020/11/25 Python
前端实现弹幕效果的方法总结(包含css3和canvas的实现方式)
2018/07/12 HTML / CSS
HTML5 图片预加载的示例代码
2020/03/25 HTML / CSS
草莓网化妆品日本站:Strawberrynet日本
2017/10/20 全球购物
师范生实习个人的自我评价
2013/09/28 职场文书
主题班会演讲稿
2014/05/22 职场文书
英语教师求职信
2014/06/16 职场文书
个人主要事迹材料
2014/08/26 职场文书
歼十出击观后感
2015/06/11 职场文书
nginx常用命令放入shell脚本详解
2021/03/31 Servers
golang fmt格式“占位符”的实例用法详解
2021/07/04 Golang