update router getType
All checks were successful
Deploy to Production / deploy (push) Successful in 21s
All checks were successful
Deploy to Production / deploy (push) Successful in 21s
This commit is contained in:
126
UPLOAD_GUIDE.md
Normal file
126
UPLOAD_GUIDE.md
Normal file
@@ -0,0 +1,126 @@
|
||||
# Upload API
|
||||
|
||||
API endpoint để upload các loại file khác nhau.
|
||||
|
||||
## Quy tắc phân loại file
|
||||
|
||||
- **Images** (jpg, jpeg, png, gif, bmp, webp, svg, ico) → `public/images/`
|
||||
- **Audio** (mp3, wav, ogg, m4a, aac, flac, wma) → `public/media/`
|
||||
- **Video** (mp4, avi, mov, wmv, flv, mkv, webm) → `public/media/`
|
||||
- **Các file khác** → `public/files/`
|
||||
|
||||
## API Endpoints
|
||||
|
||||
### 1. Upload single file
|
||||
```
|
||||
POST /api/upload/single
|
||||
Content-Type: multipart/form-data
|
||||
|
||||
Body:
|
||||
- file: (binary file)
|
||||
```
|
||||
|
||||
**Response:**
|
||||
```json
|
||||
{
|
||||
"success": true,
|
||||
"message": "File uploaded successfully",
|
||||
"data": {
|
||||
"filename": "example-1234567890.jpg",
|
||||
"originalname": "example.jpg",
|
||||
"mimetype": "image/jpeg",
|
||||
"size": 12345,
|
||||
"type": "image",
|
||||
"path": "public/images/example-1234567890.jpg",
|
||||
"url": "/public/images/example-1234567890.jpg"
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
### 2. Upload multiple files
|
||||
```
|
||||
POST /api/upload/multiple
|
||||
Content-Type: multipart/form-data
|
||||
|
||||
Body:
|
||||
- files: (array of binary files, max 10)
|
||||
```
|
||||
|
||||
**Response:**
|
||||
```json
|
||||
{
|
||||
"success": true,
|
||||
"message": "2 files uploaded successfully",
|
||||
"data": [
|
||||
{
|
||||
"filename": "photo1-1234567890.jpg",
|
||||
"originalname": "photo1.jpg",
|
||||
"mimetype": "image/jpeg",
|
||||
"size": 12345,
|
||||
"type": "image",
|
||||
"path": "public/images/photo1-1234567890.jpg",
|
||||
"url": "/public/images/photo1-1234567890.jpg"
|
||||
},
|
||||
{
|
||||
"filename": "audio-1234567891.mp3",
|
||||
"originalname": "audio.mp3",
|
||||
"mimetype": "audio/mpeg",
|
||||
"size": 54321,
|
||||
"type": "audio",
|
||||
"path": "public/media/audio-1234567891.mp3",
|
||||
"url": "/public/media/audio-1234567891.mp3"
|
||||
}
|
||||
]
|
||||
}
|
||||
```
|
||||
|
||||
### 3. Delete file
|
||||
```
|
||||
DELETE /api/upload/file
|
||||
Content-Type: application/json
|
||||
|
||||
Body:
|
||||
{
|
||||
"filepath": "public/images/example-1234567890.jpg"
|
||||
}
|
||||
```
|
||||
|
||||
### 4. Get file info
|
||||
```
|
||||
GET /api/upload/info?filepath=public/images/example-1234567890.jpg
|
||||
```
|
||||
|
||||
## Giới hạn
|
||||
|
||||
- **Max file size:** 50MB
|
||||
- **Max files per upload (multiple):** 10 files
|
||||
|
||||
## Sử dụng với Postman/cURL
|
||||
|
||||
### Postman:
|
||||
1. Chọn POST method
|
||||
2. URL: `http://localhost:10001/api/upload/single`
|
||||
3. Body → form-data
|
||||
4. Key: `file`, Type: File
|
||||
5. Chọn file cần upload
|
||||
|
||||
### cURL:
|
||||
```bash
|
||||
# Upload single file
|
||||
curl -X POST http://localhost:10001/api/upload/single \
|
||||
-F "file=@/path/to/your/file.jpg"
|
||||
|
||||
# Upload multiple files
|
||||
curl -X POST http://localhost:10001/api/upload/multiple \
|
||||
-F "files=@/path/to/file1.jpg" \
|
||||
-F "files=@/path/to/file2.mp3"
|
||||
```
|
||||
|
||||
## Truy cập file đã upload
|
||||
|
||||
Sau khi upload thành công, file có thể truy cập qua URL:
|
||||
```
|
||||
http://localhost:10001/public/images/example-1234567890.jpg
|
||||
http://localhost:10001/public/media/audio-1234567890.mp3
|
||||
http://localhost:10001/public/files/document-1234567890.pdf
|
||||
```
|
||||
Reference in New Issue
Block a user