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的Function详细
Nov 14 Javascript
JavaScript DOM学习第六章 表单实例
Feb 19 Javascript
js模拟滚动条(横向竖向)
Feb 22 Javascript
JS、CSS加载中的小问题探讨
Nov 26 Javascript
分享一个自己动手写的jQuery分页插件
Aug 28 Javascript
JavaScript实现同步于本地时间的动态时间显示方法
Feb 02 Javascript
JavaScript中Math.SQRT2属性的使用详解
Jun 14 Javascript
基于javascript bootstrap实现生日日期联动选择
Apr 07 Javascript
BootStrap点击下拉菜单项后显示一个新的输入框实现代码
May 16 Javascript
js 截取或者替换字符串中的数字实现方法
Jun 13 Javascript
vue的mixins属性详解
Mar 14 Javascript
手把手教你 CKEDITOR 4 扩展插件制作
Jun 18 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实现var_export的详细介绍
2013/06/20 PHP
php使用function_exists判断函数可用的方法
2014/11/19 PHP
thinkphp自定义权限管理之名称判断方法
2017/04/01 PHP
PHP单例模式模拟Java Bean实现方法示例
2018/12/07 PHP
PHP实现提取多维数组指定一列的方法总结
2019/12/04 PHP
JavaScript国旗变换效果代码
2008/08/13 Javascript
JavaScript OOP面向对象介绍
2010/12/02 Javascript
zShowBox 图片放大展示jquery版 兼容性
2011/09/24 Javascript
JS实现图片产生波纹一样flash效果的方法
2015/02/27 Javascript
jquery简单的弹出层浮动层代码
2015/04/27 Javascript
JavaScript中用sort()方法对数组元素进行排序的操作
2015/06/09 Javascript
基于jquery实现select选择框内容左右移动添加删除代码分享
2015/08/25 Javascript
JS作为值的函数用法示例
2016/06/20 Javascript
详解Vue2.x-directive的学习笔记
2017/07/17 Javascript
jQuery Position方法使用和兼容性
2017/08/23 jQuery
在 Linux/Unix 中不重启 Vim 而重新加载 .vimrc 文件的流程
2018/03/21 Javascript
JS+H5 Canvas实现时钟效果
2018/07/20 Javascript
vue同步父子组件和异步父子组件的生命周期顺序问题
2018/10/07 Javascript
JavaScript类型相关的常用操作总结
2019/02/14 Javascript
JQuery Ajax跨域调用和非跨域调用问题实例分析
2019/04/16 jQuery
ant-design-vue中的select选择器,对输入值的进行筛选操作
2020/10/24 Javascript
在主机商的共享服务器上部署Django站点的方法
2015/07/22 Python
Python实现更改图片尺寸大小的方法(基于Pillow包)
2016/09/19 Python
Python编程实战之Oracle数据库操作示例
2017/06/21 Python
windows下Virtualenvwrapper安装教程
2017/12/13 Python
对Python通过pypyodbc访问Access数据库的方法详解
2018/10/27 Python
Python实现EXCEL表格的排序功能示例
2019/06/25 Python
Numpy数组array和矩阵matrix转换方法
2019/08/05 Python
python海龟绘图之画国旗实例代码
2020/11/11 Python
纯CSS实现预加载动画效果
2017/09/06 HTML / CSS
解释下面关于J2EE的名词
2013/11/15 面试题
学习焦裕禄精神践行三严三实心得体会
2014/10/13 职场文书
婚礼双方父亲致辞
2015/07/27 职场文书
天谕手游15杯全调酒配方和调酒券的获得方式
2022/04/06 其他游戏
Python+OpenCV实现图片中的圆形检测
2022/04/07 Python