1.9 KiB
1.9 KiB
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
from scripts import uploader
Function Signature
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
{
"status": "success",
"path": "/full/path/to/saved/file.jpg"
}
On failure:
{
"status": "failed",
"error": "Error message here"
}
Examples
Basic Upload (Keep Original Filename)
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
@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
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