ReactNative实现图片上传功能(兼容安卓和ios)

最近在学习ReactNative,ReactNative可以基于目前大热的开源JavaScript库React.js来开发iOS和Android原生App,今天就学习一下ReactNative实现图片上传功能 在查看ReactNative的官方文档的时候,你会发现其实Fackbook是没有提供图片上传功能的。 如果我们的项目里需要使用图片上传(用js 实现图片上传),那我们有没有什么办法呢? 通过搜索React-native的github, 会发现里面有这么一篇文章:github.com/facebook/re...
解决方案: 采用FormData来实现,FormData 的API参考:developer.mozilla.org/zh-CN/docs/... 利用FormData对象,你可以使用一系列的键值对来模拟一个完整的表单,然后使用XMLHttpRequest发送这个"表单".

那么我们就来看看在RN里怎么做,贴代码:

js 复制代码
function uploadImage(uri) { // 参数为图片本地路径
  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
js 复制代码
'Content-Type':'multipart/form-data', 
  1. 将创建好的FormData赋值给body

这样我们就完成了图片上传的功能。

各位也可以参考我这篇文章做个拍照功能,拍照完成后得到图片的url本地地址,然后结合这篇文章做个拍照上传服务器功能

也可以参考这篇文章将图片剪切后得到url本地地址,然后剪切完成后上传至服务器

相关推荐
一渊之隔6 分钟前
uniapp蓝牙搜索连接展示蓝牙设备包含信号显示
前端·网络·uni-app·bluetooth
Cisyam^11 分钟前
Bright Data Web Scraper 实战:构建 TikTok 与 LinkedIn Web Scraping 自动化 Skill(2026)
运维·前端·自动化
李剑一23 分钟前
开箱即用!Vue3+TS 视频组件完整代码,自动提取视频第一帧做封面。妈妈再也不用担心我手动截封面了
前端
盐多碧咸。。42 分钟前
echarts折线图矩形选择 框选图表
前端·javascript·echarts
羽沢3143 分钟前
Canvas学习一
前端·css·学习·canvas
KaMeidebaby1 小时前
卡梅德生物技术快报|锦葵科植物遗传转化工程化优化:棉花胚尖农杆菌转化体系参数固化与效率提升
前端
invicinble1 小时前
前端框架使用vue-cli( 第二层:工程配置层--4.axios需要做的基础配置)
前端·vue.js·前端框架
用户070455741291 小时前
第一次前后端联调后,我终于理解了什么是工程化
前端
亲亲小宝宝鸭1 小时前
Vue3中那些冷门但实用的方法
前端·vue.js
qq_349523261 小时前
分析原型到表的过程
前端