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 相关文章推荐
在 IE 中调用 javascript 打开 Excel 表
Dec 21 Javascript
根据出生日期自动取得星座的js代码
Jul 20 Javascript
动态调用CSS文件的JS代码
Jul 29 Javascript
在Javascript中 声明时用"var"与不用"var"的区别
Apr 15 Javascript
JS清除文本框内容离开在恢复及鼠标离开文本框时触发js的方法
Jan 12 Javascript
JQuery遍历元素的父辈和祖先的方法
Sep 18 Javascript
js+html5实现复制文字按钮
Jul 15 Javascript
react实现点击选中的li高亮的示例代码
May 24 Javascript
Express结合Webpack的全栈自动刷新
May 23 Javascript
微信小程序如何访问公众号文章
Jul 08 Javascript
在vue中根据光标的显示与消失实现下拉列表
Sep 29 Javascript
JavaScript 绘制饼图的示例
Feb 19 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中的魔术方法总结和使用实例
2015/05/11 PHP
PHP安全下载文件的方法
2016/04/07 PHP
CI框架支持$_GET的两种实现方法
2016/05/18 PHP
tp5(thinkPHP5)操作mongoDB数据库的方法
2018/01/20 PHP
PHP实现数组根据某个字段进行水平合并,横向合并案例分析
2019/10/08 PHP
DWR Ext 加载数据
2009/03/22 Javascript
JQquery的一些使用心得分享
2012/08/01 Javascript
jQuery取得设置清空select选择的文本与值
2014/07/08 Javascript
浅谈js中变量初始化
2015/02/03 Javascript
Jquery简单分页实现方法
2015/07/24 Javascript
Bootstrap模态框(modal)垂直居中的实例代码
2016/08/18 Javascript
vue.js绑定class和style样式(6)
2016/12/09 Javascript
Ionic + Angular.js实现验证码倒计时功能的方法
2017/06/12 Javascript
vue-cli单页应用改成多页应用配置详解
2017/07/14 Javascript
微信小程序 input表单与redio及下拉列表的使用实例
2017/09/20 Javascript
js判断文件类型大小并给出提示的实现方法
2018/01/03 Javascript
vue-cli 如何打包上线的方法示例
2018/05/08 Javascript
三分钟学会用ES7中的Async/Await进行异步编程
2018/06/14 Javascript
vue-cli3 配置开发与测试环境详解
2019/05/17 Javascript
微信小程序image图片加载完成监听
2019/08/31 Javascript
对vuex中getters计算过滤操作详解
2019/11/06 Javascript
javascript实现拼图游戏
2021/01/29 Javascript
安装Python和pygame及相应的环境变量配置(图文教程)
2017/06/04 Python
Python探索之Metaclass初步了解
2017/10/28 Python
django启动uwsgi报错的解决方法
2018/04/08 Python
Django之编辑时根据条件跳转回原页面的方法
2019/08/21 Python
PyCharm2020最新激活码+激活码补丁(亲测最新版PyCharm2020.2激活成功)
2020/11/25 Python
使用HTML和CSS3绘制基本卡通图案的示例分享
2015/11/06 HTML / CSS
HTML5 拖放(Drag 和 Drop)详解与实例代码
2017/09/14 HTML / CSS
伦敦剧院门票:From The Box Office
2018/06/30 全球购物
骨干教师考核方案
2014/05/09 职场文书
专项法律服务方案
2014/06/11 职场文书
党支部考察意见范文
2015/06/02 职场文书
Nginx已编译的nginx-添加新模块
2021/04/01 Servers
Python Pandas数据分析之iloc和loc的用法详解
2021/11/11 Python
在Centos 8.0中安装Redis服务器的教程详解
2022/03/21 Redis