亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

react將文件轉為base64上傳的示例代碼

 更新時間:2023年09月06日 08:31:52   作者:ATWLee  
本文主要介紹了react將文件轉為base64上傳的示例代碼,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧

需求

將圖片、pdf、word、excel等文件進行上傳。圖片、pdf等調接口A、word、excel等附件調接口B。接口關于文件是base64格式的參數(shù)

業(yè)務場景

上傳資源,區(qū)分影像與附件

邏輯思路

  • 使用原生input標簽,type='file',進行上傳
  • 上傳后的回調,對文件進行分類,影像與附件
  • 對文件進行base64編碼
  • 執(zhí)行接口進行上傳

代碼實現(xiàn)

點擊input進行上傳,選擇文件后執(zhí)行onChange回調

<input
  type="file"
  multiple
  ref={uploadInputRef}
  onChange={uploadFileOnChange}
 />

對文件進行分類,我這里是通過type去判斷的

export const uploadFileOnChange = async (e: ChangeEvent<HTMLInputElement>) => {
? const files = e.target.files;
? // 將影像以及附件分類
? const images: File[] = [];
? const attachments: File[] = [];
? for (const iterator of files ?? []) {
? ? if (
? ? ? iterator.type.includes('sheet') ||
? ? ? iterator.type.includes('excel') ||
? ? ? iterator.type.includes('csv') ||
? ? ? iterator.type.includes('word')
? ? ) {
? ? ? attachments.push(iterator);
? ? } else {
? ? ? images.push(iterator);
? ? }
? }
};

對文件進行base64編碼

async function readFileAsDataURL(file: Blob) {
? const result_base64 = await new Promise<string>((resolve) => {
? ? const fileReader = new FileReader();
? ? fileReader.readAsDataURL(file);
? ? fileReader.onload = () =>
? ? ? typeof fileReader.result === 'string' && resolve(fileReader.result);
? });
? return result_base64.split('base64,')[1];
}
export const uploadFileOnChange = async (e: ChangeEvent<HTMLInputElement>) => {
? const files = e.target.files;
? // 將影像以及附件分類
? const images: File[] = [];
? const attachments: File[] = [];
? for (const iterator of files ?? []) {
? ? if (
? ? ? iterator.type.includes('sheet') ||
? ? ? iterator.type.includes('excel') ||
? ? ? iterator.type.includes('csv') ||
? ? ? iterator.type.includes('word')
? ? ) {
? ? ? attachments.push(iterator);
? ? } else {
? ? ? images.push(iterator);
? ? }
? }
? const imageData: ImageData[] = [];
? const affixData: AffixData[] = [];
? for (const i of images) {
? ? const imgBase64 = await readFileAsDataURL(i);
? ? imageData.push({
? ? ? name: i.name,
? ? ? imgBase64,
? ? });
? }
? for (const i of attachments) {
? ? const affixBase64 = await readFileAsDataURL(i);
? ? affixData.push({
? ? ? name: i.name,
? ? ? affixBase64,
? ? });
? }
? return {
? ? imageData,
? ? affixData,
? };
};

拿到上一步返回的數(shù)據(jù)調接口

到此這篇關于react將文件轉為base64上傳的示例代碼的文章就介紹到這了,更多相關react將文件轉為base64進行上傳內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • 使用React-Router實現(xiàn)前端路由鑒權的示例代碼

    使用React-Router實現(xiàn)前端路由鑒權的示例代碼

    這篇文章主要介紹了使用React-Router實現(xiàn)前端路由鑒權的示例代碼,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-07-07
  • 如何在 React 中使用 substring() 方法

    如何在 React 中使用 substring() 方法

    這篇文章主要介紹了在 React 中使用 substring() 方法,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2023-09-09
  • React的事件處理你了解嗎

    React的事件處理你了解嗎

    這篇文章主要為大家詳細介紹了React的事件處理,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2022-03-03
  • react的hooks的用法詳解

    react的hooks的用法詳解

    這篇文章主要介紹了react的hooks的用法詳解,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-10-10
  • mobx在react hooks中的應用方式

    mobx在react hooks中的應用方式

    這篇文章主要介紹了mobx在react hooks中的應用方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-10-10
  • React引入css的幾種方式及應用小結

    React引入css的幾種方式及應用小結

    這篇文章主要介紹了React引入css的幾種方式及應用小結,操作styled組件的樣式屬性,可在組件標簽上定義屬性、也可以通過attrs定義屬性,本文通過實例代碼介紹的非常詳細,需要的朋友可以參考下
    2024-03-03
  • 詳解React?Fiber架構原理

    詳解React?Fiber架構原理

    Fiber?可以理解為一個執(zhí)行單元,每次執(zhí)行完一個執(zhí)行單元,React?Fiber就會檢查還剩多少時間,如果沒有時間則將控制權讓出去,然后由瀏覽器執(zhí)行渲染操作,這篇文章主要介紹了React?Fiber架構原理剖析,需要的朋友可以參考下
    2022-08-08
  • React中redux的使用詳解

    React中redux的使用詳解

    Redux 是一個狀態(tài)管理庫,它可以幫助你管理應用程序中的所有狀態(tài),Redux的核心概念之一是Store,它表示整個應用程序的狀態(tài),這篇文章給大家介紹React中redux的使用,感興趣的朋友一起看看吧
    2023-12-12
  • React hooks如何清除定時器并驗證效果

    React hooks如何清除定時器并驗證效果

    在React中,通過自定義Hook useTimeHook實現(xiàn)定時器的啟動與清除,在App組件中使用Clock組件展示當前時間,利用useEffect鉤子在組件掛載時啟動定時器,同時確保組件卸載時清除定時器,避免內存泄露,這種方式簡化了狀態(tài)管理和副作用的處理
    2024-10-10
  • 詳解react hooks組件間的傳值方式(使用ts)

    詳解react hooks組件間的傳值方式(使用ts)

    本文主要介紹了react hooks組件間的傳值方式(使用ts),文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-11-11

最新評論