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中的类数组对象介绍
Dec 30 Javascript
javascript中函数作为参数调用的方法
Feb 09 Javascript
2则自己编写的jQuery特效分享
Feb 26 Javascript
JS判断字符串包含的方法
May 05 Javascript
详解JavaScript的策略模式编程
Jun 24 Javascript
JavaScript 常见安全漏洞和自动化检测技术
Aug 21 Javascript
谈谈我对JavaScript中typeof和instanceof的深入理解
Dec 25 Javascript
简介BootStrap model弹出框的使用
Apr 27 Javascript
jQuery 弹出层插件(推荐)
May 24 Javascript
js将滚动条滚动到指定位置的简单实现方法
Jun 25 Javascript
vue的无缝滚动组件vue-seamless-scroll实例
Dec 18 Javascript
javascript实现简易数码时钟
Mar 30 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 session机制
2011/07/17 PHP
使用PHP实现密保卡功能实现代码<打包下载直接运行>
2011/10/09 PHP
PHP中使用GD库创建圆形饼图的例子
2014/11/19 PHP
Yii中使用PHPExcel导出Excel的方法
2014/12/26 PHP
使用PHP免费发送定时短信的实例
2016/10/24 PHP
IE6弹出“已终止操作”的解决办法
2010/11/27 Javascript
基于jQuery实现仿淘宝套餐选择插件
2015/03/04 Javascript
js实现点击获取验证码倒计时效果
2021/01/28 Javascript
Jquery ajax 同步阻塞引起的UI线程阻塞问题
2015/11/17 Javascript
JS瀑布流实现方法实例分析
2016/12/19 Javascript
jquery表单插件form使用方法详解
2017/01/20 Javascript
js下载文件并修改文件名
2017/05/08 Javascript
vue.js国际化 vue-i18n插件的使用详解
2017/07/07 Javascript
js调用设备摄像头的方法
2018/07/19 Javascript
vue拖拽组件使用方法详解
2018/12/01 Javascript
jQuery实现可编辑的表格
2019/12/11 jQuery
复习Python中的字符串知识点
2015/04/14 Python
python实现telnet客户端的方法
2015/04/15 Python
Python实现控制台进度条功能
2016/01/04 Python
Python 'takes exactly 1 argument (2 given)' Python error
2016/12/13 Python
利用python实现在微信群刷屏的方法
2019/02/21 Python
django 快速启动数据库客户端程序的方法示例
2019/08/16 Python
Pytorch: 自定义网络层实例
2020/01/07 Python
python数据预处理 :数据抽样解析
2020/02/24 Python
pandas dataframe 中的explode函数用法详解
2020/05/18 Python
canvas探照灯效果的示例代码
2018/11/30 HTML / CSS
JAKO-O德国野酷台湾站:德国首屈一指的婴幼童用品品牌
2019/01/14 全球购物
RealTek面试题
2016/06/28 面试题
电工技术比武方案
2014/05/11 职场文书
2014年大学生社会实践自我鉴定
2014/09/26 职场文书
作风建设剖析材料
2014/10/06 职场文书
2016年八一建军节活动总结
2016/04/05 职场文书
送给客户微信问候语!
2019/07/04 职场文书
创业计划书之寿司
2019/07/19 职场文书
Python实现拼音转换
2021/06/07 Python
Pandas实现批量拆分与合并Excel的示例代码
2022/05/30 Python