# 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 ```