ReactNative实现图片上传功能的示例代码


Posted in Javascript onJuly 11, 2017

最近在学习ReactNative,ReactNative可以基于目前大热的开源JavaScript库React.js来开发iOS和Android原生App,今天就学习一下ReactNative实现图片上传功能

在查看ReactNative的官方文档的时候,你会发现其实Fackbook是没有提供图片上传功能的。

如果我们的项目里需要使用图片上传(用js 实现图片上传),那我们有没有什么办法呢?

通过搜索React-native的github, 会发现里面有这么一篇文章:https://github.com/facebook/react-native/issues/5308

解决方案:

采用FormData来实现,FormData 的API参考:https://developer.mozilla.org/zh-CN/docs/Web/API/FormData

利用FormData对象,你可以使用一系列的键值对来模拟一个完整的表单,然后使用XMLHttpRequest发送这个"表单".

那么我们就来看看在RN里怎么做,贴代码:

uploadImage(){ 
 let formData = new FormData(); 
 let file = {uri: uri, type: 'multipart/form-data', name: 'a.jpg'}; 
 
 formData.append("images",file); 
 
 fetch(url,{ 
 method:'POST', 
 headers:{ 
  'Content-Type':'multipart/form-data', 
 }, 
 body:formData, 
 }) 
 .then((response) => response.text() ) 
 .then((responseData)=>{ 
 
 console.log('responseData',responseData); 
 }) 
 .catch((error)=>{console.error('error',error)}); 
 
}

1、首先我们new了一个FormData

2、创建一个file对象,uri是什么?如下示例:

Android:  file:///storage/emulated/0/Pictures/eb645893-4c00-44a3-a9b4-a2116e955f7c.jpg

ios: /Users/ashleydw/Library/Developer/CoreSimulator/Devices/23EE88D0-6E91-43AD-A3B6-06F87698C5A8/data/Containers/Data/Application/A73E68D3-7424-4301-9934-AD0F8251C1EB/tmp/7803DA8A-0E40-4FCB-A593-884805878172.jpg

3、设置header

'Content-Type':'multipart/form-data',

4、将创建好的FormData赋值给body

这样我们就完成了图片上传的功能。

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

Javascript 相关文章推荐
extjs关于treePanel+chekBox全部选中以及清空选中问题探讨
Apr 02 Javascript
JavaScript?Apple设备检测示例代码
Nov 15 Javascript
简单的代码实现jquery定时器
Jan 03 Javascript
Javascript变量的作用域和作用域链详解
Apr 02 Javascript
js立即执行函数: (function ( ){})( ) 与 (function ( ){}( )) 有什么区别?
Nov 18 Javascript
利用AngularJs实现京东首页轮播图效果
Sep 08 Javascript
jQuery中的siblings()是什么意思(推荐)
Dec 29 Javascript
JSON键值对序列化和反序列化解析
Jan 24 Javascript
详解JS模块导入导出
Dec 20 Javascript
解决vue中使用Axios调用接口时出现的ie数据处理问题
Aug 13 Javascript
Vue开发之watch监听数组、对象、变量操作分析
Apr 25 Javascript
js实现QQ邮箱邮件拖拽删除功能
Aug 27 Javascript
手把手教你搭建ES6的开发运行环境
Jul 11 #Javascript
ReactNative之键盘Keyboard的弹出与消失示例
Jul 11 #Javascript
react-native 封装选择弹出框示例(试用ios&android)
Jul 11 #Javascript
vue.js内部自定义指令与全局自定义指令的实现详解(利用directive)
Jul 11 #Javascript
javascript 玩转Date对象(实例讲解)
Jul 11 #Javascript
使用jQuery实现动态添加小广告
Jul 11 #jQuery
Vue中父组件向子组件通信的方法
Jul 11 #Javascript
You might like
强烈声明: 不要使用(include/require)_once
2013/06/06 PHP
php指定函数参数默认值示例代码
2013/12/04 PHP
php无序树实现方法
2015/07/28 PHP
深入理解PHP中的empty和isset函数
2016/05/26 PHP
Ubuntu server 11.04安装memcache及php使用memcache来存储session的方法
2016/05/31 PHP
php校验公钥是否可用的实例方法
2019/09/17 PHP
9个javascript语法高亮插件 推荐
2009/07/18 Javascript
JavaScript 匿名函数(anonymous function)与闭包(closure)
2011/10/04 Javascript
js动态控制table的tr、td增加及删除的具体实现
2014/04/30 Javascript
js实现星星打分效果的方法
2020/07/05 Javascript
jQuery实现简单二级下拉菜单
2015/04/12 Javascript
javascript中数组方法汇总
2015/07/07 Javascript
Jquery获取第一个子元素简单实例
2016/06/02 Javascript
浅谈JQ中mouseover和mouseenter的区别
2016/09/13 Javascript
ES6新特征数字、数组、字符串
2016/10/01 Javascript
JS实现css hover操作的方法示例
2017/04/07 Javascript
Vue 中使用vue2-highcharts实现top功能的示例
2018/03/05 Javascript
Typescript 中的 interface 和 type 到底有什么区别详解
2019/06/18 Javascript
在Linux中通过Python脚本访问mdb数据库的方法
2015/05/06 Python
Python多进程机制实例详解
2015/07/02 Python
python实现装饰器、描述符
2018/02/28 Python
python3.4实现邮件发送功能
2018/05/28 Python
利用python打开摄像头及颜色检测方法
2018/08/03 Python
pyQT5 实现窗体之间传值的示例
2019/06/20 Python
python中翻译功能translate模块实现方法
2020/12/17 Python
使用CSS3的font-face字体嵌入样式的方法讲解
2016/05/13 HTML / CSS
Expedia挪威官网:酒店、机票和租车
2018/03/03 全球购物
意大利网上购书网站:Libraccio.it
2021/02/03 全球购物
保险经纪人求职信
2014/03/11 职场文书
幼儿园社区活动总结
2014/07/07 职场文书
珠宝的促销活动方案
2014/08/31 职场文书
个人公司授权委托书范本
2014/10/12 职场文书
《莫泊桑拜师》教学反思
2016/02/22 职场文书
《陶罐和铁罐》教学反思
2016/03/03 职场文书
Python上下文管理器Content Manager
2021/06/26 Python
JAVA SpringMVC实现自定义拦截器
2022/03/16 Python