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 EXCEL 操作类代码
Jul 30 Javascript
国外大牛IE版本检测!现在IE都到9了,IE检测代码
Jan 04 Javascript
JQuery实现可直接编辑的表格
Apr 16 Javascript
jquery地址栏链接与a标签链接匹配之特效代码总结
Aug 24 Javascript
jQuery 3.0 的变化及使用方法
Feb 01 Javascript
Node.js获取前端ajax提交的request信息
Feb 20 Javascript
jQuery插件FusionCharts绘制ScrollColumn2D图效果示例【附demo源码下载】
Mar 22 jQuery
JavaScript装饰器函数(Decorator)实例详解
Mar 30 Javascript
详解如何用webpack4从零开始构建react开发环境
Jan 27 Javascript
初学node.js中实现删除用户路由
May 27 Javascript
Async/Await替代Promise的6个理由
Jun 15 Javascript
Vue的过滤器你真了解吗
Feb 24 Vue.js
手把手教你搭建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
smarty模板嵌套之include与fetch性能测试
2010/12/05 PHP
ThinkPHP中html:list标签用法分析
2016/01/09 PHP
use jscript Create a SQL Server database
2007/06/16 Javascript
jquery插件制作 表单验证实现代码
2012/08/17 Javascript
基于jquery的禁用右键、文本选择功能、复制按键的实现代码
2013/08/27 Javascript
将中国标准时间转换成标准格式的代码
2014/03/20 Javascript
jQuery取id有.的值的方法
2014/05/21 Javascript
JavaScript实现获得所有兄弟节点的方法
2015/07/23 Javascript
第一次接触神奇的Bootstrap导航条
2016/08/09 Javascript
vue如何引用其他组件(css和js)
2017/04/13 Javascript
vue.js默认路由不加载linkActiveClass问题的解决方法
2017/12/11 Javascript
浅谈vue项目4rs vue-router上线后history模式遇到的坑
2018/09/27 Javascript
微信小程序实现省市区三级地址选择
2020/06/21 Javascript
vue中实现回车键登录功能
2020/02/19 Javascript
Python脚本实现自动将数据库备份到 Dropbox
2017/02/06 Python
Python实现的径向基(RBF)神经网络示例
2018/02/06 Python
Java与Python两大幸存者谁更胜一筹呢
2018/04/12 Python
django1.11.1 models 数据库同步方法
2018/05/30 Python
PyCharm设置SSH远程调试的方法
2018/07/17 Python
python去重,一个由dict组成的list的去重示例
2019/01/21 Python
python flask 如何修改默认端口号的方法步骤
2019/07/12 Python
pytorch获取vgg16-feature层输出的例子
2019/08/20 Python
Pycharm创建项目时如何自动添加头部信息
2019/11/14 Python
在pytorch 中计算精度、回归率、F1 score等指标的实例
2020/01/18 Python
Keras中的两种模型:Sequential和Model用法
2020/06/27 Python
css3的@media属性实现页面响应式布局示例代码
2014/02/10 HTML / CSS
CSS3实现歌词进度文字颜色填充变化动态效果的思路详解
2020/06/02 HTML / CSS
有关HTML5页面在iPhoneX适配问题
2017/11/13 HTML / CSS
美国最大的网上冲印店:Shutterfly
2017/01/01 全球购物
LORAC官网:美国彩妆品牌
2019/08/27 全球购物
财务出纳员岗位职责
2013/11/26 职场文书
学术会议欢迎词
2014/01/09 职场文书
营销总经理岗位职责
2014/02/02 职场文书
宿舍违规用电检讨书
2014/02/16 职场文书
毕业设计论文评语
2014/12/31 职场文书
安装pytorch时报sslerror错误的解决方案
2021/05/17 Python