Compare commits
No commits in common. "script/uploader" and "master" have entirely different histories.
script/upl
...
master
@ -1,100 +0,0 @@
|
|||||||
# Uploader
|
|
||||||
|
|
||||||
File upload utility library for Bottle framework.
|
|
||||||
|
|
||||||
## Description
|
|
||||||
|
|
||||||
Simple file upload handler that saves files to a specified directory with optional renaming.
|
|
||||||
|
|
||||||
## Usage
|
|
||||||
|
|
||||||
### Import
|
|
||||||
|
|
||||||
```python
|
|
||||||
from scripts import uploader
|
|
||||||
```
|
|
||||||
|
|
||||||
### Function Signature
|
|
||||||
|
|
||||||
```python
|
|
||||||
uploader.upload(file, directory, new_name=None)
|
|
||||||
```
|
|
||||||
|
|
||||||
### Parameters
|
|
||||||
|
|
||||||
| Parameter | Type | Required | Description |
|
|
||||||
|-----------|------|----------|-------------|
|
|
||||||
| `file` | FileStorage | Yes | File object from `request.files.get('field_name')` |
|
|
||||||
| `directory` | string | Yes | Target directory path (will be created if not exists) |
|
|
||||||
| `new_name` | string | No | New filename. If empty/None, uses original filename |
|
|
||||||
|
|
||||||
### Returns
|
|
||||||
|
|
||||||
```python
|
|
||||||
{
|
|
||||||
"status": "success",
|
|
||||||
"path": "/full/path/to/saved/file.jpg"
|
|
||||||
}
|
|
||||||
```
|
|
||||||
|
|
||||||
On failure:
|
|
||||||
|
|
||||||
```python
|
|
||||||
{
|
|
||||||
"status": "failed",
|
|
||||||
"error": "Error message here"
|
|
||||||
}
|
|
||||||
```
|
|
||||||
|
|
||||||
## Examples
|
|
||||||
|
|
||||||
### Basic Upload (Keep Original Filename)
|
|
||||||
|
|
||||||
```python
|
|
||||||
from bottle import request
|
|
||||||
from scripts import uploader
|
|
||||||
|
|
||||||
@app.route('/upload', method='POST')
|
|
||||||
def do_upload():
|
|
||||||
file = request.files.get('file')
|
|
||||||
directory = '/var/www/uploads/'
|
|
||||||
|
|
||||||
result = uploader.upload(file, directory)
|
|
||||||
|
|
||||||
if result['status'] == 'success':
|
|
||||||
return f"File saved to: {result['path']}"
|
|
||||||
else:
|
|
||||||
return f"Upload failed: {result['error']}"
|
|
||||||
```
|
|
||||||
|
|
||||||
### Upload with Custom Filename
|
|
||||||
|
|
||||||
```python
|
|
||||||
@app.route('/upload', method='POST')
|
|
||||||
def do_upload():
|
|
||||||
file = request.files.get('file')
|
|
||||||
directory = '/var/www/uploads/'
|
|
||||||
new_name = "profile_picture.jpg"
|
|
||||||
|
|
||||||
result = uploader.upload(file, directory, new_name)
|
|
||||||
|
|
||||||
return result
|
|
||||||
```
|
|
||||||
|
|
||||||
### Using Generated Filename
|
|
||||||
|
|
||||||
```python
|
|
||||||
import uuid
|
|
||||||
|
|
||||||
@app.route('/upload', method='POST')
|
|
||||||
def do_upload():
|
|
||||||
file = request.files.get('file')
|
|
||||||
directory = '/var/www/uploads/'
|
|
||||||
|
|
||||||
ext = file.filename.split('.')[-1]
|
|
||||||
new_name = f"{uuid.uuid4()}.{ext}"
|
|
||||||
|
|
||||||
result = uploader.upload(file, directory, new_name)
|
|
||||||
|
|
||||||
return result
|
|
||||||
```
|
|
||||||
@ -1,11 +0,0 @@
|
|||||||
import os
|
|
||||||
def upload(file, directory, new_name=None):
|
|
||||||
try:
|
|
||||||
os.makedirs(directory, exist_ok=True)
|
|
||||||
if not new_name:
|
|
||||||
new_name = file.filename
|
|
||||||
full_path = os.path.join(directory, new_name)
|
|
||||||
file.save(full_path, overwrite=True)
|
|
||||||
return {"status": "success", "path": full_path}
|
|
||||||
except Exception as e:
|
|
||||||
return {"status": "failed", "error": str(e)}
|
|
||||||
Loading…
Reference in New Issue
Block a user