0.9.54 • Published 7 months ago

@maxmax117/fast-upload v0.9.54

Weekly downloads
-
License
MIT
Repository
-
Last release
7 months ago

FastUpload

最强大的轻量化浏览器端文件上传组件,基于js的worker线程技术的多线程文件上传组件,支持任意大小的大文件上传,支持断点续传,支持并发上传,当文件上传时不会阻塞UI主线程。注意:这是react的前端组件,你需要自己实现后端接口,或者你也可以联系作者(max_wang7788@163.com)提供成熟的后端组件(node/bun, java或者go版本)。 The most powerful lightweight browser-side file upload component. Based on JS worker thread technology, it supports multi-threaded file uploads, uploads of files of any size, resumable uploads, and concurrent uploads. File uploads do not block the UI main thread. Note: This is a React frontend component. You need to implement the backend interface yourself, or you can contact the author to provide a mature backend component (node/bun, java, or go version) at:max_wang7788@163.com.

Installation / 安装

安装

npm install light-upload
# 或者
yarn add light-upload
、、、

## 配置 Tailwind CSS
为了确保 light-upload 组件的样式能被正确应用,你需要将组件库的路径添加到你的 tailwind.config.js 文件中的 content 数组里。

tailwind.config.js

、、、

/** @type { import ( 'tailwindcss' ) .Config } */

module . exports = {

content: [

"./src/**/*.{js,ts,jsx,tsx}" , // 你自己项目的源

文件路径

"./node_modules/light-upload/dist/**/*.{js,

ts,jsx,tsx}" , //Add this line,  添加这一行来扫描 light-upload

组件

// 其他需要扫描的路径...

] ,

theme: {

extend: { } ,

} ,

plugins: [ ] ,

}

、、、

注意: 请确保你的项目中已经安装并配置了 Tailwind CSS。

# FastUpload

最强大的轻量化浏览器端文件上传组件,基于js的worker线程技

术的多线程文件上传组件,支持任意大小的大文件上传,支持断点

续传,支持并发上传,当文件上传时不会阻塞UI主线程。注意:这

是react的前端组件,你需要自己实现后端接口,或者你也可以联

系作者(max_wang7788@163.com)提供成熟的后端组件(node/

bun, java或者go版本)。

< br >

The most powerful lightweight browser-side file

upload component. Based on JS worker thread

technology, it supports multi-threaded file

uploads, uploads of files of any size, resumable

uploads, and concurrent uploads. File uploads do

not block the UI main thread. Note: This is a

React frontend component. You need to implement

the backend interface yourself, or you can

contact the author to provide a mature backend

component (node/bun, java, or go version) at:

max_wang7788@163.com.

## Installation / 安装

```bash

npm install light-upload

## Usage / 使用方法
、、、
import React, { useRef } from 'react';
import { FastUpload } from 'light-upload';
// 假设你有一个按钮组件, 例如: import { Button } from '@/components/ui/button';
import { Button } from './your-button-component'; 

function MyComponent() {
  const triggerRef = useRef(null);

  return (
    <div>
      {/* 方法一:使用默认触发器 */}
      <FastUpload lang='zh' uploadServer='http://your-backend-server:4000' />

      <hr style={{ margin: '20px 0' }} />

      {/* 方法二:使用自定义触发器 */}
      <Button ref={triggerRef}>选择文件</Button>
      {/* 将 FastUpload 放在按钮旁边或任何你希望的位置 */}
      <FastUpload trigger={triggerRef} lang='en' uploadServer='http://your-backend-server:4000' />
    </div>
  );
}

export default MyComponent;
、、、

## Props / 属性
- lang (string, optional): 设置组件语言。支持 'en', 'zh', 'ja'。默认为 'en'。 (Sets the component language. Supports 'en', 'zh', 'ja'. Defaults to 'en'.)
- uploadServer (string, required): 后端上传服务的 URL。 (The URL of your backend upload service.)
- trigger (React.RefObject, optional): 一个指向触发上传按钮的 ref。如果提供,组件本身不显示触发区域,而是监听此 ref 元素的点击事件来弹出文件选择框。 (A ref pointing to a trigger button/element. If provided, the component itself won't render a trigger area but will listen for clicks on this ref'd element to open the file dialog.)
- chunkSize (number, optional): 文件分片大小(字节)。默认为 1MB (1 * 1024 * 1024 bytes)。 (The size of file chunks in bytes. Defaults to 1MB.)
## Backend / 后端实现
你需要实现一个支持分片上传和断点续传的后端服务。可以联系作者(max_wang7788@163.com)获取示例或成熟的后端组件。
(You need to implement a backend service that supports chunked uploads and resumable uploads. Contact the author(max_wang7788@163.com) for examples or mature backend components.)