# python3 -m pip install Flask
import os
import time
from pathlib import Path
from flask import Flask, request, Response
app = Flask(__name__)
app.config['MAX_CONTENT_LENGTH'] = 20 * 1024 * 1024
DIRECTORY = Path(os.environ.get('UPLOAD_DIR', Path(__file__).parent / 'test'))
DIRECTORY.mkdir(parents=True, exist_ok=True)
@app.post('/PicXfer.php')
def receive():
    name = request.args.get('pic', '')
    if not name or name in ('.', '..') or any(c in name for c in ('/', '\\', '\0')):
        return Response('错误：pic 必须是文件名', status=400, mimetype='text/plain')
    start = time.perf_counter()
    data = request.get_data()
    try:
        (DIRECTORY / name).write_bytes(data)
    except OSError:
        return Response('错误：文件保存失败', status=500, mimetype='text/plain')
    return Response(f"We're in the XFER Program...\nReceiving: {name}\nBytes written: {len(data)}\nDuration: {time.perf_counter() - start}", mimetype='text/plain')
if __name__ == '__main__':
    app.run(host='0.0.0.0', port=int(os.environ.get('PORT', 3000)))
