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实现页面实时显示当前时间的简单实例
Jul 20 Javascript
Chrome下ifame父窗口调用子窗口的问题示例探讨
Mar 17 Javascript
js对象基础实例分析
Jan 13 Javascript
AngularJS在IE8的不支持的解决方法
May 13 Javascript
前端js实现文件的断点续传 后端PHP文件接收
Oct 14 Javascript
jQuery实现花式轮播之圣诞节礼物传送效果
Dec 25 Javascript
Javascript 对cookie操作详解及实例
Dec 29 Javascript
微信小程序 下拉列表的实现实例代码
Mar 08 Javascript
微信小程序 setData使用方法及常用错误解决办法
May 11 Javascript
vue的基本用法与常见指令
Aug 15 Javascript
详解使用create-react-app快速构建React开发环境
May 16 Javascript
微信小程序开发之转发分享功能
Oct 22 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
轻松入门: 煮好咖啡的七个诀窍
2021/03/03 冲泡冲煮
通过具体程序来理解PHP里面的抽象类
2010/01/28 PHP
PHP时间格式控制符对照表分享
2013/07/23 PHP
本地机apache配置基于域名的虚拟主机详解
2013/08/10 PHP
Mac下php 5升级到php 7的步骤详解
2017/04/26 PHP
自制PHP框架之路由与控制器
2017/05/07 PHP
PHP字符串中抽取子串操作实例分析
2019/06/22 PHP
js left,right,mid函数
2008/06/10 Javascript
jQuery 中使用JSON的实现代码
2011/12/01 Javascript
9行javascript代码获取QQ群成员具体实现
2013/10/16 Javascript
easyui取消表单实时验证,提交时统一验证的简单实例
2016/11/07 Javascript
jQuery Form表单取值的方法
2017/01/11 Javascript
前端主流框架vue学习笔记第一篇
2017/07/26 Javascript
Vue2.0 slot分发内容与props验证的方法
2017/12/12 Javascript
jQuery简单实现的HTML页面文本框模糊匹配查询功能完整示例
2018/05/09 jQuery
vue观察模式浅析
2018/09/25 Javascript
layDate插件设置开始和结束时间
2018/11/15 Javascript
详解微信小程序网络请求接口封装实例
2019/05/02 Javascript
layui使用及简单的三级联动实现教程
2020/12/01 Javascript
[59:30]VG vs LGD 2019国际邀请赛淘汰赛 胜者组 BO3 第二场 8.22
2019/09/05 DOTA
Python+django实现文件下载
2016/01/17 Python
python文件的md5加密方法
2016/04/06 Python
Python的socket模块源码中的一些实现要点分析
2016/06/06 Python
numpy给array增加维度np.newaxis的实例
2018/11/01 Python
使用python的pexpect模块,实现远程免密登录的示例
2019/02/14 Python
python 多进程共享全局变量之Manager()详解
2019/08/15 Python
如何基于pandas读取csv后合并两个股票
2020/09/25 Python
国外平面设计第一市场:99designs
2016/10/25 全球购物
英国珠宝网站Argento: PANDORA、Olivia Burton和Nomination等
2020/05/08 全球购物
广州一家公司的.NET面试题
2016/06/11 面试题
十佳护士获奖感言
2014/02/18 职场文书
党员干部形式主义个人整改措施
2014/09/17 职场文书
教师党员先进性教育自我剖析材料思想汇报
2014/09/24 职场文书
买房协议书范本
2014/10/23 职场文书
2014年学校党建工作总结
2014/11/11 职场文书
2015年学校禁毒工作总结
2015/05/27 职场文书