React Native 上传图片失败

2023-12-05

在过去的两天里,我一直在努力破解使用 React Native 到 MongoDB 的文件/图像上传。我确实阅读了所有相关论坛,但没有运气。我阅读了几个论坛,他们给出了一个示例,但我没有成功。这是我编写的示例代码。

客户端 :

const { uri } = await this.camera.takePictureAsync(options);

let formData = new FormData();
formData.append('file', {
  uri: uri.replace("file:///", ""),
  type:'image/jpg', name:'userProfile.jpg',
});

const rawResponse = await fetch('http://192.168.1.5:9000/api/contrats/upload', {
  method: 'POST',
  body: formData,
  headers: {
    Accept: 'application/json',
    'Content-Type': 'multipart/form-data; charset=utf-8',
    },
});


const content = await rawResponse.json();

console.log(content);

服务器端

var storage = multer.diskStorage({
  destination: (req, file, cb) => {
    
 
    cb(null, __basedir + '/resources/static/assets/uploads');
    
  },
  filename: (req, file1, cb) => {
    console.log("file : ", file);
    let name = file.originalname || file.name;
    let extension = name.substr((~-name.lastIndexOf(".") >>> 0) + 2);
    let filename = generateId() +"."+ extension;                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       nsion;
    cb(null, filename)

  },


});

var upload = multer({
  storage: storage,
  limits: {
    fileSize: 1024 * 1024 * 5
  }
});

Result

enter image description here


尝试下面的方法

      let body = new FormData();
       let filename = uri.split('/').pop();
       body.append('file',  {uri:uri, name:filename, type:'image/jpg', });
       const header = {
           'Accept': 'application/json',
           'content-type': 'multipart/form-data',
         }
           fetch("http://192.168.1.5:9000/api/contrats/upload", {
               method: 'POST',
               headers: header,
               body:body,
           }).then(response => response.json())
            .then(res => console.log(res))
            .catch(err => console.log("err", err)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

React Native 上传图片失败 的相关文章

随机推荐

  • 在maven项目中运行scala应用程序

    我正在尝试使用 Maven 来处理 Eclipse 中的 scala 项目中的依赖关系 但是一旦项目转换为maven 应用程序将不再运行 以下是重现步骤 1 新的scala项目 项目名称 测试 finish 2 新的scala对象 名称 你
  • 模板始终使用指令中的旧范围值进行编译

    我有一个像这样工作的指令 http jsfiddle net smithkl42 cwrgLd0L 23 App directive prettify compile function compile var templateFn retu
  • 从文件中提取单词

    我使用 python 打开一个文件 以查找打开的文件中是否存在预定义的单词集 我在列表中获取了预定义的单词集并打开了需要测试的文件 现在有什么方法可以在 python 中提取单词而不是行 这让我的工作变得更加轻松 import re def
  • 搜索并替换特殊字符 PHP

    我正在尝试搜索并替换从 csv 文件解析的字符串中的特殊字符 当我用 vim 打开文本文件时 它显示字符是 我一生都无法弄清楚这是要与 preg replace 一起使用的字符 任何帮助 将不胜感激 Thanks 克里斯 爱德华兹 0x95
  • 使发送密钥更快

    我正在尝试创建一个程序 该程序将打开 命令提示符 并使用 sendKeys 打开特定端口 这是我的代码 Set Keys CreateObject WScript Shell oShell ShellExecute cmd exe runa
  • ANTLR 4.5 - 不匹配的输入“x”期望“x”

    我已经开始使用 ANTLR 并注意到它的词法分析器规则非常变化无常 一个极其令人沮丧的例子如下 grammar output test FILEPATH NEWLINE TITLE FILEPATH A Z a z 0 9 NEWLINE
  • 使用 Selenium 和 Python 传递值时,动态下拉列表不会在 https://www.nseindia.com/ 上填充自动建议

    driver webdriver Chrome C Workspace Development chromedriver exe driver get https www nseindia com companies listing cor
  • Oauth2使用ASP .net core MVC登录Google api

    我一直在关注Web 应用程序 ASP NET MVC 尝试连接到 Google API 之一 using System using System Web Mvc using Google Apis Auth OAuth2 using Goo
  • 在考虑精度损失的同时,如何比较 float 和 double?

    比较两个的最有效方法是什么double or two float values 简单地这样做是不正确的 bool CompareDoubles1 double A double B return A B 但类似的东西 bool Compar
  • 关于重音字符的 Uri.EscapeUriString() 问题

    如果我尝试在函数中放入带有重音字符的 URL 例如 Percep o 它会输出 Percep C3 A7 C3 A3o 这无法正常工作 然而 Percep e7 e3o 确实按其应有的方式工作 String Result Uri Escap
  • 父控制鼠标进入/离开子控件事件

    我有一个 C NET 2 0 WinForms 应用程序 我的应用程序有一个控件 它是两个子控件的容器 一个标签和某种编辑控件 你可以这样想 其中外框是父控件 Label Control Edit Control 我试图在鼠标进入或离开父控
  • 包含的 C++/C 头文件的实现在哪里?

    这可能看起来有点愚蠢 但这已经困扰了一段时间了 当我在我的C C程序中包含一些别人编写的头文件时 编译器如何知道头文件中声明的类成员函数的实现在哪里 假设我想编写一些利用 OpenCV 库的程序 通常我想使用 include
  • 具有多租户场景的 BackChannelLogoutUri

    我目前正在使用 Identity server 4 我正在尝试启用返回ChannelLogoutUri 每个客户端在客户端配置中都被赋予了一个 BackChannelLogoutUri BackChannelLogoutUri http l
  • 丰田 ECU 回复来自 MCP2515 和 Nodemcu-32s 的 0x03 0x7F 0x01 0x11 至 02 01 00 PID 查询请求

    我正在将 mcp2515 与 nodemcu 32s 一起使用 并且能够接收互联网上几乎没有 2c4 2c1 340 等 id 的消息 我看到 2c4 用于 rpm 我也验证了它 我的问题是 无论我使用哪个库来请求支持的 pid 支持的 p
  • C++0x 闭包的未定义行为:I

    考虑这个例子 include
  • 无法将 Glassfish 服务器添加到 Netbeans IDE 14

    正如标题所示 我无法将 Glassfish 服务器添加到 NetBeans IDE 14 我按下了 添加服务器 菜单项 然后在 选择服务器 屏幕上选择了 GlassFish 服务器 然后 显示 不是有效的 GlassFish Server
  • 字体未加载

    我在我的网站中使用了一些服装字体 但我遇到了一个问题 它没有加载 我无法找出问题所在 代码如下 font face font family OuachitaWayWbw src url fonts Ouachita Way Wbw ttf
  • 缓存高效的矩阵转置程序?

    因此转置矩阵的明显方法是使用 for int i 0 i lt n i for int j 0 j lt n j destination j i n source i j n 但我想要一些能够利用局部性和缓存阻塞的东西 我正在查找它 但找不
  • 在 R 中使用 idw 的空间插值误差

    我正在尝试按纬度和经度对海水 pH 值数据集进行空间插值 sample lt read csv file Station locations 2016 csv header TRUE sep strip white T head sampl
  • React Native 上传图片失败

    在过去的两天里 我一直在努力破解使用 React Native 到 MongoDB 的文件 图像上传 我确实阅读了所有相关论坛 但没有运气 我阅读了几个论坛 他们给出了一个示例 但我没有成功 这是我编写的示例代码 客户端 const uri