v1.22.0 — โอเพนซอร์ส · สัญญาอนุญาต MIT

ตัวจัดการไฟล์ที่ฝังได้ทุกที่

PHP ≥ 8.1 + Flysystem 3 UI Alpine.js Local, S3, Cloudflare R2 ฝังด้วย JavaScript ไม่กี่บรรทัด

PHP ≥ 8.1
ไม่ต้องใช้เฟรมเวิร์ก
~3 KB
ขนาด SDK
MIT
สัญญาอนุญาตโอเพนซอร์ส
16
ภาษาที่รองรับ
ตัวอย่าง

ดูการทำงานจริง

FluxFiles desktop file manager UI
FluxFiles mobile file manager UI
FluxFiles create folder modal
คุณสมบัติ

ทุกสิ่งที่ตัวจัดการไฟล์สมัยใหม่ต้องการ

สร้างขึ้นสำหรับนักพัฒนาที่ต้องการความยืดหยุ่น

หลายที่เก็บข้อมูล

Local, AWS S3, Cloudflare R2 ผ่าน Flysystem v3 — สลับด้วย config ไม่ต้องแก้โค้ด

ฝังได้ทุกที่

iframe + postMessage SDK UI แยกใช้ Alpine.js (ไม่ต้อง build) ใช้กับทุกเฟรมเวิร์ก

JWT auth + scoping

พาธพรีฟิกซ์ต่อผู้ใช้ สิทธิ์ ไวท์ลิสต์ดิสก์ โหมด owner-only

AI auto-tag

Claude / OpenAI vision — alt text, ชื่อ, แท็กอัตโนมัติ

ครอปรูปภาพ

เครื่องมือครอปพร้อมอัตราส่วนภาพสำเร็จรูป

ปรับแต่งรูปภาพ

สร้าง WebP อัตโนมัติ — thumb, medium, large

อัปโหลดแบบ presigned

เบราว์เซอร์อัปโหลดตรงไปยัง S3/R2 — ไม่ใช้แบนด์วิดท์เซิร์ฟเวอร์เลย

อัปโหลดแบบแบ่งส่วน

S3 multipart สำหรับไฟล์ > 10MB

ค้นหาข้อความเต็ม

SQLite FTS5 ค้นหาตามชื่อ, ชื่อเรื่อง, แท็ก

ดำเนินการจำนวนมาก

เลือกหลายไฟล์เพื่อย้าย คัดลอก ลบ ดาวน์โหลด

ถ่ายโอนข้ามดิสก์

คัดลอก/ย้ายระหว่าง Local ↔ S3 ↔ R2

ถังขยะ

ลบแบบกู้คืนได้ ล้างอัตโนมัติ

SEO metadata

หัวข้อ alt คำบรรยาย แท็ก — metadata อ็อบเจ็กต์ S3 (คลาวด์) หรือ sidecar JSON (โลคัล) ค้นหาข้อความเต็ม

โหมดมืด

สว่าง / มืด / อัตโนมัติ ใน UI และ SDK

16 ภาษา

ค่าเริ่มต้นภาษาอังกฤษ ตั้ง locale ผ่าน SDK URL (?locale=) หรือ FLUXFILES_LOCALE อาหรับ RTL

บันทึกการตรวจสอบ

บันทึกการกระทำเขียนทั้งหมด

จำกัดอัตรา

Token bucket ต่อผู้ใช้สำหรับป้องกัน API

โควต้าพื้นที่

จำกัดต่อผู้ใช้ผ่าน JWT claims

BYOB bucket

ผู้ใช้ผูก S3/R2 เอง — credential เข้ารหัสใน JWT (AES-256-GCM)

ตรวจซ้ำ

SHA-256 ตรงกันข้ามอัปโหลดซ้ำ เว้นแต่บังคับเขียนทับ

รีเฟรชโทเคน SDK

onTokenRefresh เมื่อ 401 — รวมรีเฟรช ลองใหม่ updateToken()

ติดตั้งด่วน

พร้อมใช้งานใน 2 นาที

composer require fluxfiles/fluxfiles
cp .env.example .env

# .env
FLUXFILES_SECRET=your-random-32-char-secret
FLUXFILES_ALLOWED_ORIGINS=https://yourapp.com

require_once 'vendor/autoload.php';

$token = fluxfiles_token(
    userId: 'user-123',
    perms: ['read', 'write', 'delete'],
    disks: ['local', 's3', 'r2'],
    prefix: 'user-123/',
    maxUploadMb: 10,
    allowedExt: null,
    ttl: 3600
);
composer require fluxfiles/laravel
php artisan vendor:publish --tag=fluxfiles-config

# .env — point the adapter at your FluxFiles server
FLUXFILES_ENDPOINT=https://fm.yourdomain.com
FLUXFILES_SECRET=your-secret-min-32-chars

# Optional: match CORS on the FluxFiles host
# FLUXFILES_ALLOWED_ORIGINS=https://yourapp.com

# Config: config/fluxfiles.php
<!-- Demo: unpkg. In production, serve fluxfiles.js from your FluxFiles host -->
<script src="https://unpkg.com/fluxfiles@1.22.0/fluxfiles.js"></script>

<script>
FluxFiles.open({
    endpoint: 'https://your-api.com',
    token: 'eyJhbGci...',
    disk: 'local',
    mode: 'picker',
    container: '#file-picker',
    onSelect: function(file) {
        console.log('Selected:', file.url);
    },
    async onTokenRefresh() {
        const r = await fetch('/api/auth/refresh-fluxfiles-token');
        const { token } = await r.json();
        return token;
    }
});
</script>
npm install @fluxfiles/react

import { FluxFilesModal } from '@fluxfiles/react';

<FluxFilesModal
    open={open}
    endpoint="https://your-api.com"
    token={token}
    onSelect={(file) => console.log(file)}
    onClose={() => setOpen(false)}
/>
npm install @fluxfiles/vue

<script setup>
import { FluxFilesModal } from '@fluxfiles/vue';
</script>

<FluxFilesModal
    v-model:open="open"
    endpoint="https://your-api.com"
    :token="token"
    @select="onSelect"
    @close="open = false"
/>
git clone https://github.com/thai-pc/fluxfiles.git
cd fluxfiles
composer install -d packages/core
cp .env.example .env

cd packages/core
php -S localhost:8080 router.php

# UI:  http://localhost:8080/public/index.html
# API: http://localhost:8080/api/fm/list?disk=local&path=

ใช้ได้กับ

Laravel WordPress React / Next.js Vue / Nuxt CKEditor 4 TinyMCE Any framework
ทำไมต้อง FluxFiles

สร้างขึ้นสำหรับสิ่งที่คนอื่นลืม

คุณสมบัติ FluxFiles elFinder Laravel-FM RichFilemanager Responsive FM
S3 + R2 + Local
ฝังในทุกเฟรมเวิร์ก
JWT auth + scoping
SEO metadata
AI auto-tag
ครอปรูปภาพ
อัปโหลดแบบแบ่งส่วน
ค้นหาข้อความเต็ม
โหมดมืด
16 ภาษา
PHP ≥ 8.1
ดูแลอย่างต่อเนื่อง
UI สมัยใหม่