costapy/scripts/uploader.md

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