首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

为什么react里用fetch上传img没有fileName?

在React中使用fetch上传图片时,没有提供fileName参数的原因是fetch API的设计如此。fetch API是一种现代的网络请求API,用于替代传统的XMLHttpRequest对象。它提供了一种简洁、灵活的方式来发送HTTP请求,并且支持Promise。

在使用fetch上传图片时,可以通过FormData对象来构建请求体,并将图片文件作为FormData的一个字段进行传递。FormData对象提供了一个append()方法,用于添加键值对到表单中。在这种情况下,我们可以使用append()方法将图片文件添加到FormData对象中,而不需要指定文件名。

以下是一个使用fetch上传图片的示例代码:

代码语言:txt
复制
const uploadImage = (file) => {
  const formData = new FormData();
  formData.append('image', file);

  return fetch('/upload', {
    method: 'POST',
    body: formData
  })
  .then(response => response.json())
  .then(data => {
    console.log('Upload successful', data);
  })
  .catch(error => {
    console.error('Error uploading image', error);
  });
}

在上述代码中,我们创建了一个FormData对象,并使用append()方法将图片文件添加到formData中。然后,我们使用fetch发送POST请求,将formData作为请求体传递给服务器。服务器可以通过相应的后端框架来处理这个请求,并将图片保存到指定的位置。

需要注意的是,fetch API在发送请求时,默认使用的是Content-Type为"application/json",而不是"multipart/form-data",因此需要手动设置请求头的Content-Type为"multipart/form-data",以确保服务器能够正确解析请求体。

总结起来,React中使用fetch上传图片没有提供fileName参数是因为fetch API的设计如此,我们可以使用FormData对象来构建请求体,并将图片文件作为FormData的一个字段进行传递。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

  • 前端-学习JavaScript是一种什么样的体验?

    为什么不用 HTML 了……? 现在可是 2016 年啊,没有直接写 HTML 的。 对哦。好吧,加了这两个依赖,是不是就可以开始用 React 了? 不行哦。...我举个例子吧,如果你要使用 React,你直接用 npm 安装 React,然后在代码里导入 React 就可以了。大部分 JS 库都能这么安装。 嗯,Angular 也可以。...哦,好吧,为什么 Webpack 是加强版? 额,可能并没有加强吧。...那为什么我们不直接在页面里添加 React 的三个依赖文件呢? 不行。你可以从 CDN 加载这些文件,但是你还是要在本地用 Babel 转译。 唉,这么鹾?...回到 React 吧,用 React 我怎么从服务器获取数据? 额,React 没有提供这个功能,你只能用 React 展示数据。 服了啊。那我怎么获取数据? 你用 Fetch API 就可以了。

    1.1K30

    webpack5资源最佳加载方案

    ​​​​在前面几篇文章中,我们已经学会基础的运用webpack与webpack-cli从0到1搭建一个简单的react或者vue工程应用,这其中我们使用了加载文件,我们在之前处理文件使用file-loader...或者url-loader处理,url-loader主要是可以针对图片文件大小进行有选择的base64压缩,在webpack5中可以用内置的Asset Modules来处理图片资源 接下来我们一起探讨学习下.../public/index.html' }) ] }; 注意我们加载图片没有使用file-loader与url-loader,我们使用的是webpack5内置的asset/rosource.../images/1.png">了 如果你的图片地址是上传到cdn上的,那么你可以像下面一样这么做,但是这种做法是不是在项目中真的需要,还有待商榷,因为这样会导致应用的所有图片用cdn方式加载,如果项目中只是部分图片按需...), assetModuleFilename: 'images/[name][ext]' } } 通常项目里我们会把比较小的图片直接坐base64加载,大的图片就直接输出加载,或者上传到cdn

    88020

    SSR服务器端渲染(Next.js总结和豆瓣电影项目)「建议收藏」

    Next.js带来了很多好的特性: 默认服务端渲染模式,以文件系统为基础的客户端路由(注意:没有专门路由) 代码自动分割使页面加载更快 以webpack的热替换(HMR)为基础的开发环境 使用React...run dev,出来效果: 页面导航 路由跳转(组件跳转和事件跳转) Link组件跳转: 1,引入Link组件 import Link from 'next/link'; 2.使用 注意点: 路径是用href...js,但通过点击跳转的方式只有js,没有再次请求页面....直接使用react里面的this.props.children属性即可动态渲染主体内容 第二步:使用布局组件(核心:把布局组件写成双标签形式,在双标签里放入要显示的动态内容即可) 效果...全局布局组件 上面的Mylayout布局组件在主页,教师页和学生页等每个页面都引入了一次,有没有办法全局一次引入呢?

    2.2K40

    一篇讲透自研的前端错误监控

    上报接口 为什么不能直接用GET/POST/HEAD请求接口进行上报? 这个比较容易想到原因。一般而言,打点域名都不是当前域名,所以所有的接口请求都会构成跨域。...构造图片打点不仅不用插入DOM,只要在js中new出Image对象就能发起请求,而且还没有阻塞问题,在没有js的浏览器环境中也能通过img标签正常打点。 使用new Image进行接口上报。...e.filename || !e.filename.match(/^(http|https):\/\/yun./)) return true 重复上报 怎么避免重复的数据上报?....}, ... ]) // 这里没有生成source-map的链接地址 根据报错文件的url,根据团队内部约定好的目录和规则,定位之前打包上传的sourceMap地址。...但他发现本地上报的条数和实际日志服务里的条数对不上,日志服务里的少了很多。 由于之前自身刚毕业时候做过2年多后端开发,对于IO操作丢失数据还是有点敏感。直觉上就感觉可能是多进程方向的问题。

    1.7K20

    写给新手前端的各种文件上传攻略,从小图片到大文件断点续传

    最原始的文件上传 使用 form 表单上传文件 在 ie时代,如果实现一个无刷新的文件上传那可是费老劲了,大部分都是用 iframe 来实现局部刷新或者使用 flash 插件来搞定,在那个时代 ie 就是最好用的浏览器...这种方式上传文件,不需要 js ,而且没有兼容问题,所有浏览器都支持,就是体验很差,导致页面刷新,页面其他数据丢失。...,在掘金的编辑器里也同样存在,在坐有知道原因的可以留言说下。...把大文件进行分段 比如2M,发送到服务器携带一个标志,暂时用当前的时间戳,用于标识一个完整的文件 服务端保存各段文件 浏览器端所有分片上传完成,发送给服务端一个合并文件的请求 服务端根据文件标识、类型、...方法1 基于上面一个栗子进行改进,服务端已保存了部分片段,重新上传的时候,服务端对当前的分段进行对比,只接收本地没有的分段,前提是分段大小一致。

    3.2K30

    react笔记

    3.作用:复用js, 简化js的编写, 提高js运行效率 1.4.2 组件 1.理解:用来实现局部功能效果的代码和资源的集合(html/css/js/image等等) 2.为什么要用组件: 一个界面的功能更复杂...React面向组件编程 2.1 基本理解和使用 2.1.1 使用React开发者工具调试 2.1.2 效果 函数式组件:[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-4duhOUzD...v15.5 开始已弃用)[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-HKGNoref-1631449545453)(7f8d3a23451aa4675751e87bf8777846...组件内的标签可以定义ref属性来标识自己 2.4.2 编码 1.字符串形式的ref[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-sSpiG5Nw-1631449545457...console.log(response); }) .catch(function (error) { console.log(error); }); 2)POST请求 fetch

    1.4K20

    Blob

    换句话说,如果当你在熟悉 API 的使用之后,还能继续多问几个为什么,继续探究下去,不仅能加深对知识的理解,还能触类旁通,拓展自己的知识面提高自己。...MIME 类型)和 blobParts 组成 image.png MIME(Multipurpose Internet Mail Extensions)多用途互联网邮件扩展类型,是设定某种扩展名的文件用一种应用程序来打开的方式类型...这里我们来看一下如何使用 fetch API 获取线上图片并本地显示,具体实现如下: const myImage = document.querySelector('img'); const myRequest...3.3 Blob 用作 URL Blob 可以很容易的作为 、img> 或其他标签的 URL,多亏了 type 属性,我们也可以上传/下载 Blob 对象。...针对这个问题,我们可以调用 URL.revokeObjectURL(url) 方法,从内部映射中删除引用,从而允许删除 Blob(如果没有其他引用),并释放内存。

    6.2K40

    使用 Docker 和 Node 快速实现一个在线的 QRCode 解码服务

    读取用户上传的文件 解析用户上传的文件 尝试将文件中的信息解码并反馈用户 其中依赖了一个 express 三方的中间件 multipartMiddleware,我将主要使用它来进行上传文件的请求序列化...这里因为没有什么重度的操作,界面也很简单,所以既不需要 jQ 这类库,也不需要 Vue、React 这类框架,直接写脚本就是了。...,服务端接口需要做一个简单的改动,我没有这个需求,就不做了,有兴趣可以实践下,理论上加两个循环就完事。...接着我们继续实现上传功能,因为现代的浏览器都支持了 fetch,所以实现起来也很简单,二十多行解决战斗: function getMimeType(file, filename) { if (!...,草稿箱里的东西积累的再多一些,文章的质量会再上一层楼,一起期待一下吧。

    73200

    【Hybrid开发高级系列】WebPack模块化专题

    的配置文件并没有固定的命名,也没有固定的路径要求,如果你直接用webpack来执行编译,那么webpack默认读取的将是当前目录下的webpack.config.js $ pwd /d/xampp/htdocs...条件值(condition)可以是一个字符串(某个资源的文件系统绝对路径),可以是一个函数(官方文档里是有这么写,但既没有示例也没有说明,我也是醉了),可以是一个正则表达式(用来匹配资源的路径,最常用,...2.7.3 JS中的图片         初用webpack进行项目开发的同学会发现:在js或者react中引用的图片都没有打包进bundle文件夹中。         ...另外,使用ProvidePlugin还有个好处,就是,你自己写的代码里,再!也!不!用!require!jQuery!啦!         ...不过后来我又一想,既然vendor可以,为什么组件不可以用同样的方式处理呢?于是乎找到了最佳方法。

    38650

    沉淀了3年的自研前端错误监控系统,打通你的脉络

    还记得我第一次进入「兑吧」的时候,我就在简历里描述了错误监控之类的项目,其实当时我并没有在一个公司进行过实践,这大概是之前在网易的时候,闲来没事,进行的自我探索。...上报接口 为什么不能直接用GET/POST/HEAD请求接口进行上报? 这个比较容易想到原因。一般而言,打点域名都不是当前域名,所以所有的接口请求都会构成跨域。...构造图片打点不仅不用插入DOM,只要在js中new出Image对象就能发起请求,而且还没有阻塞问题,在没有js的浏览器环境中也能通过img标签正常打点。 使用new Image进行接口上报。...e.filename || !e.filename.match(/^(http|https):\/\/yun./)) return true 「重复上报」 怎么避免重复的数据上报?....}, ... ]) // 这里没有生成source-map的链接地址 根据报错文件的url,根据团队内部约定好的目录和规则,定位之前打包上传的sourceMap地址。

    1.1K10

    【React】211- 2019 React Redux 完全指南

    count 存在 App 的 state 里,会以 prop 的形式向下传递: ? 要想数据向上传递,需要通过回调函数实现,因此必须首先将回调函数向下传递到任何想通过调用它来传递数据的组件中。 ?...相邻组件间的数据传递 如果你有些兄弟组件需要共享数据,React 的方式是把数据向上传到父组件中,然后再通过 props 向下传递。 但这可能很麻烦。...通过用 Provider 组件包装整个应用,如果它想的话,应用树里的每一个组件都可以访问 Redux store。...你可以简写成 mapState 或者用任何你想的方式调用。只要你接收 state 对象然后返回全是 props 的对象,那就没问题。 为什么不传整个 state?...Action 常量很容易编写:用变量保存你的 action 字符串。 把这些变量放在一个 actions.js 文件里是个好办法(当你的应用很小时)。

    4.3K20

    沉淀了3年的自研前端错误监控系统,打通你的脉络

    还记得我第一次进入「兑吧」的时候,我就在简历里描述了错误监控之类的项目,其实当时我并没有在一个公司进行过实践,这大概是之前在网易的时候,闲来没事,进行的自我探索。...上报接口 为什么不能直接用GET/POST/HEAD请求接口进行上报? 这个比较容易想到原因。一般而言,打点域名都不是当前域名,所以所有的接口请求都会构成跨域。...构造图片打点不仅不用插入DOM,只要在js中new出Image对象就能发起请求,而且还没有阻塞问题,在没有js的浏览器环境中也能通过img标签正常打点。 使用new Image进行接口上报。...e.filename || !e.filename.match(/^(http|https):\/\/yun./)) return true 「重复上报」 怎么避免重复的数据上报?....}, ... ]) // 这里没有生成source-map的链接地址 根据报错文件的url,根据团队内部约定好的目录和规则,定位之前打包上传的sourceMap地址。

    1K20

    🎉我点了页面上的元素,VSCode 乖乖打开了对应的组件?原理揭秘。

    运行时:需要在 React 组件的最外层包裹 Inspector 组件,用于在浏览器端监听快捷键,弹出 debug 的遮罩层,在点击遮罩层的时候,利用 fetch 向本机服务发送一个打开 VSCode...本地服务:需要启动 react-dev-utils 里的一个中间件,监听一个特定的路径,在本机服务端执行打开 VSCode 的指令。 下面简单分析一下这几步到底做了什么。...fileName=/Users/admin/app/src/Title.tsx') 来测试 react-dev-utils的服务是否开启成功。...// 这里用正则屏蔽了一些组件名 这些正则匹配到的组价名不会被检测到 export const debugToolNameRegex = /^(.*?\.Provider|.*?...比如你的进程里有 /Applications/Visual Studio Code.app/Contents/MacOS/Electron,那说明你用的是 VSCode,就获取了 code 这个指令。

    2.3K10
    领券