在react中 实现 base64的图片转换成formdata格式并实现上传功能

ReactNative实现图片上传功能的示例代码 本篇文章主要介绍了ReactNative实现图片上传功能的示例代码,具有一定的参考价值,感兴趣的小伙伴们可以参考一下。 立即下载

如果不想要服务端实现处理base64格式的图片的转换,那么在浏览器端来实现,部分属于伪代码, 且 axios 未封装处理,仅作为开发参考,请勿直接拷贝使用 ?

代码封装

主要通过react来实现,下面是封装之后的上传方法,仅作为开发参考

    uploadPic(base64String, suc, fail) {
        // 下面将要把 base64 转换成formdata
        // 这里对base64串进行操作,去掉url头,并转换为byte
        let bytes = window.atob(base64String.split(',')[1]);
        let array = [];
        for(let i = 0; i < bytes.length; i++){
            array.push(bytes.charCodeAt(i));
        }
        let blob = new Blob([new Uint8Array(array)], {type: 'image/jpeg'});
        // 生成FormData对象
        let fd = new FormData();
        // 注:此处 file 应和后台接收参数匹配
        fd.append('file', blob, Date.now() + '.jpg');
        let config = {
            headers: {'Content-Type': 'multipart/form-data'}
        }
        let url =  Constant.fileUrl;
        // 加载中
        this.setState({
            loadingShow: true,
            loadingText: '图片上传中...',
        });
        // 添加请求头
        axios.post(url, fd, config)
            .then(response => {
                if(response.data.resultcode === 200) {
                    suc && suc(response.data.content[0]);
                } else {
                    fail && fail(response.data.resultmsg);
                }
            })
            .catch(() => {
                fail && fail('网络原因, 未上传成功!');
            });
    }

// 把图片保存到服务器端
savePic(imgUrl, suc, fail) {
    // 添加请求头
    let url =  Constant.appServerUrl + "/file-save";
    let postData = {
        protocolImg: imgUrl,
        puid: Storage.get('uid')
    };
    axios.post(url, postData)
        .then(response => {
            if(response.data.resultcode === 200) {
                suc && suc(response.data);
            } else {
                fail && fail(response.data);
            }
        })
        .catch(() => {
            fail && fail('网络原因, 未保存成功!');
        });
}

函数调用

// 上传base64的图片
this.uploadPic(base64String, (url) => {
    // 成功的回调
    this.setState({
        loadingText: '图片保存中...',
    });
    // 保存图片 
    this.savePic(url, (msg)=>{
        // console.log('msg', msg);
        // 保存成功,提示
        this.setState({
            loadingText: '请稍后...',
            isProtocol: true,
        });
        // 开始进行支付操作
        // this.clickToPayForOrder();
    }, (error)=>{
        // 保存失败 提示:
        alert('图片保存失败: ' + error);
    });
   
}, (errMsg) => {
    // 失败的回调
    alert("发生错误: ", errMsg);
    // loading 消失
    this.setState({
        loadingShow: false,
        loadingText: ''
    });
});
JavaScript将base64图片转换成formData并通过AJAX提交的实现方法 本文通过三步骤给大家详细介绍了JavaScript将base64图片转换成formData并通过AJAX提交的实现方法,感兴趣的朋友一起看看吧 立即下载

相关推荐

Tessent_StdcellLib

第二种为 Tessent Cell lib,既可用于功能仿真,也可以用于测试逻辑插入。lib包含了用于仿真的功能信息,也包含DFT cell属性。如何使用tessent工具将stdcell verilog 仿真模型转换为tessent自己的lib。运行后工具会生成一个atpg的lib文件,打开文件,找到一个带SI的DFF,只有功能描述。tessnt lib分为两种,第一种为ATBG lib,可以用于仿真;打开生成的lib文件,多了dft_cell_selection。第二部:编写attributes文件。

qq_40411444的博客 2136

react 实现图片上传功能

图片上传

weixin_50828895的博客 5019

MIMIC-IV数据库中患者院内死亡的单因素生存分析

目的 由易到难,对mimic-iv的查询进行实际操作,体现先前文章中提到的mimic-iv数据查询的规律。 数据分析计划 死亡,是重症患者最重要的结局指标,在MIMIC数据库中收录了院内死亡的数据,以及进出ICU的时间(和进出医院的时间),所以我们可以获得是否死亡,以及从入ICU(或入院)到死亡发生之间的时间,有了这两个指标,我们可以通过Cox单因素(参数和非参数)模型来观察ICU(和医院)内死亡的趋势,以及某个变量(比如,性别和种族等)对死亡趋势的影响,以为后续的分析奠定基础。 数据的获取 我们需要数个变

skyskytotop的博客 3186

react上传图片

在Web开发中,上传图片是一个常见的需求,而React作为一种常用的前端开发框架,也支持图片上传的功能。在本篇博客中,我们将介绍如何使用React实现图片上传的功能。

qq_70703397的博客 2121

hMailServer安装配置

hMailServer安装配置 使用宝塔面板上的宝塔邮件服务器2.1版本,进行安装hMailServer。 宝塔在安装hMailServer是有做了一些配置,如果是手工安装需要注意一下配置点: 1、\hMailServer\Bin 目录下增加mysql连接文件libmysql.dll,要去下载32位的。 libmysql.dll下载 链接:https://pan.baidu.com/s/1YGJXzjowlJ9n_MiqB4xiqw 提取码:wz90 2、 需要提前安装mysql,并创建hM.

王者的博客 5870

TypeScript版LangChain环境配置全攻略:从零搭建AI应用开发环境

大语言模型(LLM)作为当前AI应用开发的核心技术,通过API接口为开发者提供了强大的自然语言处理能力。其工作原理基于Transformer架构,通过预训练和微调实现对人类语言的深度理解与生成。在工程实践中,开发者需要将LLM与外部工具、数据源和业务逻辑有效集成,这正是LangChain框架的技术价值所在——它提供了标准化的组件和接口,简化了复杂AI应用的构建流程。应用场景涵盖智能客服、内容生成、数据分析助手等多个领域。本文聚焦于TypeScript/JavaScript生态下的LangChain开发,详细

weixin_29055699的博客 253

base64转formdata上传图片

直接复制了……是在用html2canvas转图片的时候用到的…… // base64 这里取得是 base64.split(',')[1]那一串,前面的不取 const data = window.atob(base64); const ia = new Uint8Array(data.length); for (let i = 0; i < data.length; i++) { ia[i] = data.charCodeAt(i); } const blob = new Blob([i

shihezhengshz的博客 845

3dmax文件格式转换——.max 转换为 .flt(解决转换后.flt没有纹理贴图的问题)

本文主要介绍如何在3dmax中将.max格式文件转换为.flt格式文件,并解决转换后的文件没有纹理贴图的问题。 在3dmax中,将.max文件转换为.flt格式,只需导出选择.flt格式即可,但是导出的文件在osgEarth中加载后,缺少纹理和贴图。 下面是解决方案: 1、选中加载的模型,然后点击 渲染-> 渲染到纹理 2、将 渲染到纹理 子窗口往下拉,点击 添加 按钮,添加 ...

cchangcs 6178

React之批量上传图片

文章目录本文将介绍两种方式进行批量上传图片(原始input/antdUpload)两种方式的区别1. 原始input是将图片存为一个对象数组,将不合格的图片过滤掉之后,一次性提交给后端2. antd-Upload是循环调用后端接口(上传一张的接口)上传图片,遇到不合格的可以跳过一、原始input(1)页面使用input HTML1. 编辑页面元素2. 设置ref(2)编写onChange函数1. 定义formData2. 编写onChange函数3. 上传图片时4. 图片格式校验函数(3)后端接口1. 封装

Welkin_qing的博客 4488

RK3568 Android14 移远GNSS卫星导航模组LC760Z GPS北斗定位模块调试

Rockchip RK3568 作为一款高性能、低功耗的国产SoC,被广泛应用于工业网关、车载中控和智能手持终端等领域。在这些应用场景中,位置服务(Location Service) 往往是不可或缺的功能。本文将详细记录如何集成GPS模组到 RK3568 开发板上,通过 UART(串口)接口集成通用的 GPS 模块(如 移远LC760Z 或 EC20 4G 模块自带的 GPS 功能也差不多),并实现数据的解析与上层应用对接。

qq_33427070的博客 1414

详解FreeRTOS:事件标志组(高级篇—5)

事件组可以实现一对多,多对多的同步,即一个任务可以等待多个事件的发生。任务可以通过设置事件位来实现事件的触发和等待操作,FreeRTOS的事件仅用于同步,不提供数据传输功能。

不脱发的程序猿 1076

react-cropper + antdesign +dva 实现裁剪图片并上传的功能

react-cropper + antdesign +dva 实现裁剪图片并上传的功能 一.首先安装react-cropper插件 npm install --save react-cropper 执行该命令以后,下载react-cropper依赖信息自动更新到package.json中 在使用该插件的代码中需要进行引入 import "cropperjs/dist/cropper.css" im...

qq_36400206的博客 3451

新手福利!大龙虾OpenClaw可视化管理工具来了!告别命令行,这个可视化工具让OpenClaw管理变得超简单

还在用命令行管理OpenClaw?🚀 这个跨平台可视化工具支持14+AI模型,一键切换,还能对接微信飞书钉钉等8大消息渠道,让AI助手管理变得简单直观 ✅ 暗色主题护眼舒适,Rust后端高性能低占用,新手也能轻松上手 🎯

XiaoqiangClub的博客 762

关于formData的批量上传使用数组进行批量 以及base64进行formData转换

} let formData = new FormData() let files = [] if(this.clickCameraNUm == 1){ files = this.imgPreviewArr } else if(this.clickCameraNUm == 2){ files = this.imgListBefore } else if(this.clickCameraNUm ==...

dongheng123的博客 1038

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

js实现图片的上传及将图片转为base64格式

首先用的是react + axios + antd文件上传接口:fileUpload(api, file, isHost = true) { const url = (isHost ? host : '') + api; const formData = new FormData(); formData.append('file', file); return axios....

yenaYu的博客 6685

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

React H5图片压缩上传

目录 第一步:获取file文件 第二步:将获取的文件进行base64编码 第三步:利用canvas压缩图片 第四步:将压缩后的base64编码图片转为File类型 第五步:利用FormData上传 第一步:获取file文件 默认已获取到用户选择的图片File,请参考其他资料。 File文件内容参考如下图,如果你拿到这样的数据,这一步就完成了。 第二步:将获取的文件进行base64编码 如下图 imgBase64就是base64编码之后的图片,这里注意this指向问题 get.

SoulKey的博客 1714

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

antd上传upload组件customRequest 图片转base64

工作有那么个需求,从官网 issue中获悉: 使用 Upload 的 customRequest 用 FileReader 读取。 customRequest 从官网获悉其参数: onProgress: (event: { percent: number }): void onError: (event: Error, body?: Object): void onSuccess: (body...

wscwj8的博客 6927

react前端显示图片_【React】怎么把图片从前端上传到服务器?

遇到一个需求,就是需要把图片传给后台数据库,然后前端再读取数据库图片,有人说base64,请问一下base64是怎么上传的?前端把图片转为base64数据,传给后台,然后后台保存base64,之后前端读取的时候再解析base64?是这样理解的吗?还有其他方法吗?前端用的是react,后台是java回答可以使用 FormData ,其属于 XHR Level 2 中内容。文件可以使用 input:f...

weixin_35033679的博客 1634

new FormData() 前端上传文件图片到服务器

关于FormData XMLHttpRequest Level 2添加了一个新的接口FormData.利用FormData对象,我们可以通过JavaScript用一些键值对来模拟一系列表单控件,我们还可以使用XMLHttpRequest的send()方法来异步的提交这个"表单".比起普通的ajax,使用FormData的最大优点就是我们可以异步上传一个二进制文件. 所有主流浏览器的较新版本都已...

weixin_33690963的博客 5081

前端Base64格式文件上传详解:原理、实现与最佳实践

Base64 适合“简单、小文件、JSON 友好”的场景,是快速实现的好工具;但在生产环境中,优先考虑 FormData 或云存储直传,Base64 只作为补充。做一个头像上传组件?处理多文件 + 表单混合上传?大文件分片方案?还是具体框架(React/Vue/UniApp)的完整代码?告诉我具体需求,我可以给你更精准的代码模板!

likuoelie的博客 790

图片上传功能解析

前几年为了提高图片上传速度,引入了百度的webupload,效率大幅提升。后来有项目决定用react,但自带的upload功能并不能满足需求,而webupload也不支持react,就决定自己编写一个上传组件。一开始觉得这个功能流程很清晰,应该很容易就完成,但最后发现中间还是有很多坑点。 先梳理一下流程 1、点击图片选择按钮或file input弹出默认文件选择框 2、判断file size...

zarck83的博客 864

react签名+上传base64图片接口入参处理

好久没更博啦,最近写项目需要实现将签名生成的url(base64图片格式)上传到upload接口。在这简要的记录下~~ 背景:1.实现签名功能; 2.上传base64图片(格式自定义) 实现:1.签名功能 引入react-signature-canvas中的SignatureCanvas绘制: import React, { useState } from 'react'; import SignatureCanvas from 'react-signature-canvas'; const..

Dandelion529_66的博客 1212

react使用antd中的upload实现自定义头像上传并展示

通过覆盖默认的上传方式,可以自定义自己的上传实现,在此处,我们可以将图片转为base64格式进行储存,是为了上传之后图片的展示,再就是保存原始。使用的是antd中的upload组件,在上传图片过程中,并未调取后台接口,是通过。上传文件之前的钩子,参数为上传的文件,在这里可以判断图片的格式。是否展示文件列表,因为我是自定义的,所以false即可。传给后端使用(这里需要和后端开发明确好需要什么格式的)进行保存即可,在后端开发中,使用 ​。的,当所有信息保存时,连同图片的。的格式加上其他数据 需要转化成。

qq_46698519的博客 584

js文件上传图片并支持本地预览

js实现上传图片支持本地预览

qq_41812656的博客 819

React使用upload上传图片,格式为卡片模式

注释: listType="picture-card" ,文件上传的类型;name='file' ; 后台需要的键名; data={{dataId: treeDataId}}额外想给后台传递的参数 import React, {Component} from 'react'; import {Upload, Modal} from 'antd'; import {PlusOutlined} from '@ant-design/icons'; import commonConfig from...

q1054007919的博客 1466

使用FormData传递表单数据

今天遇到一个需求:通过xhr发送图片,并获取请求的返回值,需要用到FormData对象,具体的实现代码如下: var xhr = new XMLHttpRequest(),//新建一个xhr对象 input=document.getElementById("input"),//获取监听文件上传的input节点 formData = new FormData(

neoveee的博客 5327
上一篇: React 实现 2D 画板功能
下一篇: 使用SMART原则快速上手一门编程语言
Wang's Blog
博客等级 码龄12年 7434粉丝 2421原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Wang's Blog

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值