React Antd Upload自定义上传customRequest

  单独的上传图片接口要传参,action方式不太适合,需要使用自定义上传customRequest覆盖

 

 

 公司代码不可弄,就发一个可用的demo例子

import React, { useState } from "react";
import { render } from "react-dom";
import "antd/dist/antd.css";
import axios from "axios";
import "./style.css";import { Upload, Progress } from "antd";const App = () => {const [defaultFileList, setDefaultFileList] = useState([]);const [progress, setProgress] = useState(0);const uploadImage = async options => {const { onSuccess, onError, file, onProgress } = options;const fmData = new FormData();const config = {headers: { "content-type": "multipart/form-data" },onUploadProgress: event => {const percent = Math.floor((event.loaded / event.total) * 100);setProgress(percent);if (percent === 100) {setTimeout(() => setProgress(0), 1000);}onProgress({ percent: (event.loaded / event.total) * 100 });}};fmData.append("image", file);try {const res = await axios.post("https://jsonplaceholder.typicode.com/posts",fmData,config);onSuccess(res);console.log("server res: ", res);} catch (err) {console.log("Eroor: ", err);const error = new Error("Some error");onError({ err });}};const handleOnChange = ({ file, fileList, event }) => {// console.log(file, fileList, event);//Using Hooks to update the state to the current filelistsetDefaultFileList(fileList);//filelist - [{uid: "-1",url:'Some url to image'}]};return (<div class="container"><Uploadaccept="image/*"customRequest={uploadImage}onChange={handleOnChange}listType="picture-card"defaultFileList={defaultFileList}className="image-upload-grid"onProgress={({ percent }) => {console.log("progre...", percent);if (percent === 100) {setTimeout(() => setProgress(0), 1000);}return setProgress(Math.floor(percent));}}>{defaultFileList.length >= 1 ? null : <div>Upload Button</div>}</Upload>{progress > 0 ? <Progress percent={progress} /> : null}</div>);
};render(<App />, document.getElementById("root"));

onSuccess(res);

接口返回的数据都存到fileList里每个file的responese属性,还有state,可以在onChange里进行逻辑处理!!!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/247213.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

HDU 4109 Instrction Arrangement

题目链接&#xff1a;https://vjudge.net/problem/HDU-4109 题目大意 有 N 个指令&#xff0c;标号从 0 ~ N - 1&#xff0c;和 M 个指令间的先后关系&#xff0c;每个关系都有一个权值 w&#xff0c;表示后一个指令在前一个指令开始时间之后 w 纳秒才开始执行。现在要并发执行…

养成一个习惯需要多久?

有人说养成一个习惯需要21天&#xff0c;有人说30天……养成习惯到底需要多少天&#xff1f; _hzw 2012-11-09 18:04又快到年末了。 年初时&#xff0c;你曾许诺要养成一些好习惯&#xff0c;比如要常运动、多读书、少微博。有人说说养成一个习惯只需要坚持21天&#xff1b;21天…

vue3 eslint The template root requires exactly one element问题

vue项目中手动引入eslint npm install eslint --save-dev eslint初始化 npx eslint --init 运行时npm run lint 简单语法问题--fix会自动修复 但是vue3项目出现只能有一个根节点的问题 原因在于 eslintrc.js里extends中plugin:vue/essential的问题 看eslint-plugin-vue官网…

你所知道的学习方法,都是错的!

你所知道的学习方法&#xff0c;都是错的&#xff01; 上课的时候记笔记&#xff1f;哪门功课不行&#xff0c;就集中精力专项突击&#xff1f;自习的时候不要晃&#xff0c;选好一个地儿安安稳稳地待那儿学习&#xff1f;你还在这样学习吗&#xff1f;不要被骗了&#xff1a;这…

BZOJ 1683.City skyline 城市地平线

传送门 从左到右扫一遍&#xff0c;考虑什么时候会和之前形成同一幢房子从而不用统计 显然是当前的高度和之前某个点高度相同&#xff0c;并且它们之间没有更矮的建筑 考虑用一个单调栈维护一个单调上升的房子轮廓&#xff0c;然后对于扫到的每一个高度&#xff0c;看看栈里有没…

Vue3 eslint 编译器宏和 defineProps,defineEmits,no-undef 规则警告

.eslintrc.js修改 定义全局globals module.exports {globals: {defineProps: readonly,defineEmits: readonly,defineExpose: readonly,withDefaults: readonly},env: {browser: true,es2021: true},extends: [plugin:vue/vue3-strongly-recommended, standard],parserOptio…

Java生鲜电商平台-SpringCloud微服务开发中的数据架构设计实战精讲

Java生鲜电商平台-SpringCloud微服务开发中的数据架构设计实战精讲 Java生鲜电商平台: 微服务是当前非常流行的技术框架&#xff0c;通过服务的小型化、原子化以及分布式架构的弹性伸缩和高可用性&#xff0c;可以实现业务之间的松耦合、业务的灵活调整组合以及系统的高可用性…

JS两个对象数组过滤掉相同的对象

let arr1 [{uid:1,name:张三},{uid:2,name:李四}]; let arr2 [{id:1,name:张三},{id:2,name:王五,age:23},{id:3,name:罗翔}]; 去掉arr2中包含的arr1相同name的对象: //ES6的方法&#xff0c;得到新数组 const newArr arr2.filter((item) > {return !arr1.some(ele>…

亚伦•斯沃茨:提升时间的品质

亚伦•斯沃茨&#xff1a;提升时间的品质 不休不眠地工作是低效的&#xff0c;怎样发挥时间的最大效率&#xff1f; 伏维阁主 2013-01-18 16:45图片来源&#xff1a;personalitytutor.com &#xff08;亚伦•斯沃茨Aaron Swartz / 文&#xff09;《 怎样有效利用时间 》中给出的…

useEffect中使用异步函数

useEffect是不能直接用 async await 语法糖的 /* 错误用法 &#xff0c;effect不支持直接 async await*/useEffect(async ()>{/* 请求数据 */const res await getData()},[]) useEffect 的回调参数返回的是一个清除副作用的 clean-up 函数。因此无法返回 Promise&#xf…

Flex4_HttpService组件

1、在JavaWeb项目中新建Servlet(FlexLoginServelt) &#xff1a; public void doPost(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {response.setContentType("text/html");response.setContentType("text…

想要提高记忆力?做梦去吧!

想要提高记忆力&#xff1f;做梦去吧&#xff01; 豆豆助 2010-11-26 11:47经验说&#xff1a;不好好学习&#xff0c;就知道睡觉 实验说&#xff1a;要想记忆好&#xff0c;睡觉不能少。做梦可以增强我们的记忆。 有没有办法能让人不费吹灰之力增强记忆力&#xff1f; 做梦吧你…

This beta version of Typora is expired, please download and install a newer version. 解决方案

原文链接&#xff1a;https://blog.csdn.net/yyywxk/article/details/125133205 问题描述 今日打开 Typora 软件时&#xff0c;突然报错&#xff0c;提示软件版本已过期&#xff0c;需要安装新版本&#xff0c;如下图所示。 关闭错误提示框后会自动跳转到&#xff1a;https://…

MySQL查询count(*)、count(1)、count(field)的区别收集

count(*)对行的数目进行计算&#xff0c;包含NULLcount(column)对特定的列的值具有的行数进行计算&#xff0c;不包含NULL值。 count()还有一种使用方式&#xff0c;count(1)这个用法和count(*)的结果是一样的。 任何情况下select count(*) from tablename是最优选择&#xff1…

真想学习?扔掉你详细的计划吧!

真想学习&#xff1f;扔掉你详细的计划吧&#xff01; 该不该定个计划&#xff1f;详细的计划确实可以更高效&#xff0c;也许可以将你减肥的速度加快一倍。但是如果想学习&#xff0c;还是扔掉详细的计划吧&#xff01;因为它会占用你太多的认知资源&#xff0c;只顾着闷头做事…

Swift中文件和图片上传处理

前言&#xff1a;基于Alamofire4.5网络框架开发的Swift项目中上传文件和图片代码参考。 上传文件 extension HttpRequestService {typealias UploadDoneBlock (_ dict:[String : Any]) -> Void//成功blockfunc uploadEcgFileWithGatherRecord(model :RecordModel, fileName…

下载各种在线视频及字幕

1. http://en.savefrom.net/ 支持30多个有名的网页呢 &#xff0c;YouTube等等 Supported resourcesHow to use?filefactory.comsendspace.com youtube.commetacafe.combreak.comdailymotion.comvimeo.comsevenload.commail.rusmotri.comyandex.rurambler.rutvigle.ruintv.ru…

React Icons

发现一个Icon库,分享下哈; 使用React-Icons轻松地在React项目中包含流行图标&#xff0c;它利用es6导入&#xff0c;允许只包含项目正在使用的图标。 Installation (for standard modern project) npm install react-icons --save Usage import { FaBeer } from react-ico…

对flex深入研究一点

flex顶层设计 1.在任何流动的方向上(包括上下左右)都能进行良好的布局 2.可以以逆序 或者 以任意顺序排列布局 3.可以线性的沿着主轴一字排开 或者 沿着侧轴换行排列 4.可以弹性的在任意的容器中伸缩大小 5.可以使子元素们在容器主轴方向上 或者 在容器侧轴方向上 进行对齐 主轴…

那些你可能还不知道的新发明

The Wello WaterWheel 对世界上六分之一的人来说&#xff0c;取水是个苦活&#xff1a;步行数小时&#xff0c;排队等待&#xff0c;负重运送。 而花费在这个基本需求上的时间让许多儿童不得不辍学&#xff0c;让女人不能负起责任来处理家务或者工作以取得收入。在很多欠发达地…