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 相关文章推荐
(JS实现)MapBar中坐标的加密和解密的脚本
May 16 Javascript
关于Javascript模块化和命名空间管理的问题说明
Dec 06 Javascript
js实现简单登录功能的实例代码
Nov 09 Javascript
JavaScript的strict模式与with关键字介绍
Feb 08 Javascript
在JavaScript中访问字符串的子串
Jul 07 Javascript
javascript获取wx.config内部字段解决微信分享
Mar 09 Javascript
关于function类中定义变量this的简单说明
May 28 Javascript
JavaScript中如何使用cookie实现记住密码功能及cookie相关函数介绍
Nov 10 Javascript
微信小程序时间选择插件使用详解
Dec 28 Javascript
基于vue-cli 路由 实现类似tab切换效果(vue 2.0)
May 08 Javascript
vue实现页面内容禁止选中功能,仅输入框和文本域可选
Nov 09 Javascript
详解Vue中$props、$attrs和$listeners的使用方法
Feb 18 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
用php过滤危险html代码的函数
2008/07/22 PHP
php上的memcache和memcached两个pecl库
2010/03/29 PHP
php计算函数执行时间的方法
2015/03/20 PHP
php实现遍历多维数组的方法
2015/11/25 PHP
Laravel实现ApiToken认证请求
2019/10/14 PHP
高性能web开发 如何加载JS,JS应该放在什么位置?
2010/05/14 Javascript
cookie在javascript中的使用技巧以及隐私在服务器端的设置
2012/12/03 Javascript
使用js画图之画切线
2015/01/12 Javascript
jQuery使用before()和after()在元素前后添加内容的方法
2015/03/26 Javascript
JS中创建函数的三种方式及区别
2016/03/13 Javascript
jQuery防止重复绑定事件的解决方法
2016/05/14 Javascript
使用jQuery5分钟快速搞定双色表格的简单实例
2016/08/08 Javascript
浅谈移动端之js touch事件 手势滑动事件
2016/11/07 Javascript
js判断用户是输入的地址请求的路径(实例讲解)
2017/07/18 Javascript
详解JavaScript事件循环机制
2018/09/07 Javascript
关于React动态加载路由处理的相关问题
2019/01/07 Javascript
Vue.js项目实战之多语种网站的功能实现(租车)
2019/08/07 Javascript
python中List的sort方法指南
2014/09/01 Python
python提取log文件内容并画出图表
2019/07/08 Python
Python搭建代理IP池实现接口设置与整体调度
2019/10/27 Python
Python实现word2Vec model过程解析
2019/12/16 Python
canvas绘制图片drawImage使用方法
2020/09/15 HTML / CSS
威尔逊皮革:Wilsons Leather
2018/12/07 全球购物
豪华复古化妆:Besame Cosmetics
2019/09/06 全球购物
.NET初级开发工程师面试题(包括Javascript)
2012/08/22 面试题
生物化学研究助理员求职信
2013/10/09 职场文书
大四学生毕业自荐信
2013/11/07 职场文书
宿舍违规检讨书
2014/01/12 职场文书
《雨点儿》教学反思
2014/04/14 职场文书
2014年妇委会工作总结
2014/12/10 职场文书
先进教师个人总结
2015/02/11 职场文书
2016党校学习心得体会范文
2016/01/07 职场文书
校园文化艺术节开幕词
2016/03/04 职场文书
用python画城市轮播地图
2021/05/28 Python
从QQtabBar看css命名规范BEM的详细介绍
2021/08/07 HTML / CSS
Java中生成微信小程序太阳码的实现方案
2022/06/01 Java/Android