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 相关文章推荐
Jquery ajaxsubmit上传图片实现代码
Nov 04 Javascript
JS阻止用户多次提交示例代码
Mar 26 Javascript
jQuery ui 利用 datepicker插件实现开始日期(minDate)和结束日期(maxDate)
May 22 Javascript
js实现仿Windows风格选项卡和按钮效果实例
May 13 Javascript
JS+CSS实现仿触屏手机拨号盘界面及功能模拟完整实例
May 16 Javascript
javascript鼠标滑过显示二级菜单特效
Nov 18 Javascript
angularJS 如何读写缓冲的方法(推荐)
Aug 06 Javascript
js初始化验证实例详解
Nov 26 Javascript
gulp加批处理(.bat)实现ng多应用一键自动化构建
Feb 16 Javascript
Vue.js路由vue-router使用方法详解
Mar 20 Javascript
微信小程序冒泡事件及其阻止方法实例分析
Dec 06 Javascript
js之ajax文件上传
May 13 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
用PHP实现图象锐化代码
2007/06/14 PHP
详解thinkphp实现excel数据的导入导出(附完整案例)
2016/12/29 PHP
php数据库的增删改查 php与javascript之间的交互
2017/08/31 PHP
Laravel框架实现的批量删除功能示例
2019/01/16 PHP
深入理解JavaScript系列(9) 根本没有“JSON对象”这回事!
2012/01/15 Javascript
javascript学习笔记(九) js对象 设计模式
2012/06/19 Javascript
javascript避免数字计算精度误差的方法详解
2014/03/05 Javascript
JS使用replace()方法和正则表达式进行字符串的搜索与替换实例
2014/04/10 Javascript
jQuery循环滚动新闻列表示例代码
2014/06/17 Javascript
JS+CSS实现带关闭按钮DIV弹出窗口的方法
2015/02/27 Javascript
javascript中alert()与console.log()的区别
2015/08/26 Javascript
javascript实现base64 md5 sha1 密码加密
2015/09/09 Javascript
JavaScript实现三级级联特效
2017/11/05 Javascript
webuploader分片上传的实现代码(前后端分离)
2018/09/10 Javascript
详解jQuery如何实现模糊搜索
2019/05/10 jQuery
python sqlobject(mysql)中文乱码解决方法
2008/11/14 Python
Python实现list反转实例汇总
2014/11/11 Python
在Python中操作字典之setdefault()方法的使用
2015/05/21 Python
在Python的Django框架中生成CSV文件的方法
2015/07/22 Python
Python编程给numpy矩阵添加一列方法示例
2017/12/04 Python
python 读取文本文件的行数据,文件.splitlines()的方法
2018/07/12 Python
python快速排序的实现及运行时间比较
2019/11/22 Python
Python sys模块常用方法解析
2020/02/20 Python
Python 数据的累加与统计的示例代码
2020/08/03 Python
如何以Winsows Service方式运行JupyterLab
2020/08/30 Python
Python项目打包成二进制的方法
2020/12/30 Python
介绍一下ICMP(Internet Control Message Protocol)Internet控制信息协议
2016/11/26 面试题
路由表示做什么用的?在linux环境中怎么来配置一条默认路由?
2013/06/07 面试题
2014三八妇女节活动总结范文四篇
2014/03/09 职场文书
运动会入场口号
2014/06/07 职场文书
cf战队收人口号
2014/06/21 职场文书
电子专业自荐信
2014/07/01 职场文书
社会实践活动总结格式
2015/05/11 职场文书
迎新生晚会主持词
2015/06/30 职场文书
MySQL Router的安装部署
2021/04/24 MySQL
详解nginx location指令
2022/01/18 Servers