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
Feb 25 Javascript
JavaScript CSS菜单功能 改进版
Dec 20 Javascript
圣诞节Merry Christmas给博客添加浪漫的下雪效果基于jquery实现
Dec 27 Javascript
JS实现QQ图片一闪一闪的效果小例子
Jul 31 Javascript
javascript使用for循环批量注册的事件不能正确获取索引值的解决方法
Dec 20 Javascript
javascript引用类型指针的工作方式
Apr 13 Javascript
js中遍历Map对象的方法
Jul 27 Javascript
jQuery实现边框动态效果的实例代码
Sep 23 Javascript
bootstrap模态框垂直居中效果
Dec 03 Javascript
JS检测数组类型的方法小结
Mar 14 Javascript
React Native实现地址挑选器功能
Oct 24 Javascript
JavaScript实现一键复制内容剪贴板
Jul 23 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
/etc/php-fpm.d/www.conf 配置注意事项
2017/02/04 PHP
PHP面向对象程序设计继承用法简单示例
2018/12/28 PHP
javascript下判断一个元素是否存在的代码
2010/03/05 Javascript
JS鼠标事件大全 推荐收藏
2011/11/01 Javascript
初学Jquery插件制作 在SageCRM的查询屏幕隐藏部分行的功能
2011/12/26 Javascript
通过js简单实现将一个文本内容转译成加密文本
2013/10/22 Javascript
Node.js中创建和管理外部进程详解
2014/08/16 Javascript
基于jquery css3实现点击动画弹出表单源码特效
2015/08/31 Javascript
JavaScript对象数组排序函数及六个用法
2015/12/23 Javascript
Bootstrap前端开发案例一
2016/06/17 Javascript
浅谈JS的基础类型与引用类型
2016/09/13 Javascript
Html中 IFrame的用法及注意点
2016/12/22 Javascript
原生js实现中奖信息无间隙滚动效果
2017/01/18 Javascript
Mac系统下Webstorm快捷键整理大全
2017/05/28 Javascript
小程序rich-text组件如何改变内部img图片样式的方法
2019/05/22 Javascript
微信小程序如何自定义table组件
2019/06/29 Javascript
python中使用百度音乐搜索的api下载指定歌曲的lrc歌词
2014/07/18 Python
python随机生成指定长度密码的方法
2015/04/04 Python
Python中的面向对象编程详解(下)
2015/04/13 Python
python urllib爬取百度云连接的实例代码
2017/06/19 Python
基于Django ORM、一对一、一对多、多对多的全面讲解
2019/07/26 Python
python中下标和切片的使用方法解析
2019/08/27 Python
18个Python脚本可加速你的编码速度(提示和技巧)
2019/10/17 Python
conda安装tensorflow和conda常用命令小结
2021/02/20 Python
Desigual英国官网:在线购买原创服装
2018/03/09 全球购物
橄榄树药房:OLIVEDA
2019/09/01 全球购物
俄罗斯设计师家具购物网站:The Furnish
2019/12/01 全球购物
英语三分钟演讲稿
2014/08/19 职场文书
交通运输局四风问题对照检查材料思想汇报
2014/10/09 职场文书
颐和园英文导游词
2015/01/30 职场文书
篮球赛闭幕式主持词
2015/07/03 职场文书
2016中学教师读书心得体会
2016/01/13 职场文书
2016年小学“感恩教师”主题队日活动总结
2016/04/01 职场文书
营销策划分析:怎么策划才能更好销量产品?
2019/09/04 职场文书
基于Python的EasyGUI学习实践
2021/05/07 Python
python神经网络Xception模型
2022/05/06 Python