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 相关文章推荐
Javascript(AJAX)解析XML的代码(兼容FIREFOX/IE)
Jul 11 Javascript
JavaScript脚本判断蜘蛛来源的方法
Sep 22 Javascript
详解JavaScript基于面向对象之继承实例
Dec 16 Javascript
jQuery组件easyui对话框实现代码
Aug 25 Javascript
JS调用某段SQL语句的方法
Oct 20 Javascript
vue自定义tap指令及tap事件的实现
Sep 18 Javascript
jQuery轻量级表单模型验证插件
Oct 15 jQuery
js canvas实现二维码和图片合成的海报
Nov 19 Javascript
Bootstrap Paginator+PageHelper实现分页效果
Dec 29 Javascript
详解JavaScript作用域 闭包
Jul 29 Javascript
JS如何操作DOM基于表格动态展示数据
Oct 15 Javascript
JavaScript实现简单的音乐播放器
Aug 14 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
JAVA/JSP学习系列之七
2006/10/09 PHP
PHP编程过程中需要了解的this,self,parent的区别
2009/12/30 PHP
PHP迅雷、快车、旋风下载专用链转换代码
2010/06/15 PHP
php中Snoopy类用法实例
2015/06/19 PHP
WordPress中用于创建以及获取侧边栏的PHP函数讲解
2015/12/29 PHP
CI框架入门之MVC简单示例
2016/11/21 PHP
jquery实现metro效果示例代码
2013/09/06 Javascript
JQuery的ON()方法支持的所有事件罗列
2015/02/28 Javascript
jQuery实现个性翻牌效果导航菜单的方法
2015/03/09 Javascript
移除AngularJS下URL中的#字符的方法
2015/06/19 Javascript
JS+CSS实现美化的下拉列表框效果
2015/08/11 Javascript
轻松学习jQuery插件EasyUI EasyUI创建菜单与按钮
2015/11/30 Javascript
js格式化时间的方法
2015/12/18 Javascript
5个最顶级jQuery图表类库插件【jquery插件库】
2016/05/05 Javascript
Javascript vue.js表格分页,ajax异步加载数据
2016/10/24 Javascript
js+html5实现页面可刷新的倒计时效果
2017/07/15 Javascript
原生JS与JQ获取元素的区别详解
2020/02/13 Javascript
使用Python3 编写简单信用卡管理程序
2016/12/21 Python
Python机器学习logistic回归代码解析
2018/01/17 Python
matplotlib subplots 调整子图间矩的实例
2018/05/25 Python
python内置数据类型之列表操作
2018/11/12 Python
解决python打不开文件(文件不存在)的问题
2019/02/18 Python
python中logging模块的一些简单用法的使用
2019/02/22 Python
Python利用pandas处理Excel数据的应用详解
2019/06/18 Python
基于Python中random.sample()的替代方案
2020/05/23 Python
pycharm 实现复制一行的快捷键
2021/01/15 Python
css3发光搜索表单分享
2014/04/11 HTML / CSS
船餐厅和泰晤士河餐饮游轮:Bateaux London
2018/03/19 全球购物
实现strstr功能,即在父串中寻找子串首次出现的位置
2016/08/05 面试题
什么是.net
2015/08/03 面试题
毕业生自荐书
2014/02/02 职场文书
党课知识竞赛主持词
2014/04/01 职场文书
蛋糕店创业计划书范文
2014/09/21 职场文书
售房协议书范本2014
2014/10/23 职场文书
Jupyter notebook 不自动弹出网页的解决方案
2021/05/21 Python
详解Python+OpenCV进行基础的图像操作
2022/02/15 Python