ตัวจัดการไฟล์ที่ฝังได้ทุกที่
PHP ≥ 8.1 + Flysystem 3 UI Alpine.js Local, S3, Cloudflare R2 ฝังด้วย JavaScript ไม่กี่บรรทัด
ดูการทำงานจริง
ทุกสิ่งที่ตัวจัดการไฟล์สมัยใหม่ต้องการ
สร้างขึ้นสำหรับนักพัฒนาที่ต้องการความยืดหยุ่น
หลายที่เก็บข้อมูล
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= ใช้ได้กับ
สร้างขึ้นสำหรับสิ่งที่คนอื่นลืม
| คุณสมบัติ | FluxFiles | elFinder | Laravel-FM | RichFilemanager | Responsive FM |
|---|---|---|---|---|---|
| S3 + R2 + Local | ✓ | ⚠ | ⚠ | ⚠ | ✗ |
| ฝังในทุกเฟรมเวิร์ก | ✓ | ⚠ | ✗ | ⚠ | ✗ |
| JWT auth + scoping | ✓ | ✗ | ✗ | ✗ | ✗ |
| SEO metadata | ✓ | ✗ | ✗ | ✗ | ✗ |
| AI auto-tag | ✓ | ✗ | ✗ | ✗ | ✗ |
| ครอปรูปภาพ | ✓ | ✓ | ✗ | ✗ | ✗ |
| อัปโหลดแบบแบ่งส่วน | ✓ | ✗ | ✗ | ✗ | ✗ |
| ค้นหาข้อความเต็ม | ✓ | ✗ | ✗ | ✗ | ✗ |
| โหมดมืด | ✓ | ✗ | ⚠ | ✗ | ✗ |
| 16 ภาษา | ✓ | ✓ | ✗ | ✗ | ✗ |
| PHP ≥ 8.1 | ✓ | ✓ | ✗ | ✓ | ✓ |
| ดูแลอย่างต่อเนื่อง | ✓ | ✓ | ⚠ | ✗ | ✗ |
| UI สมัยใหม่ | ✓ | ✗ | ⚠ | ✗ | ✗ |