File size: 2,010 Bytes
53f7a0c
4a672f4
 
0006475
4a672f4
62e7ddb
4a672f4
c8d1088
 
 
 
 
 
 
4a672f4
 
c8d1088
4a672f4
0006475
4a672f4
 
 
 
 
62e7ddb
 
 
4a672f4
0006475
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
4a672f4
 
0006475
4a672f4
0006475
62e7ddb
797f638
f984e57
62e7ddb
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
from flask import Flask, request, jsonify, send_from_directory
import shutil
import os
import requests

app = Flask(__name__)

IMAGE_FOLDER = "images"
app.config["UPLOAD_FOLDER"] = IMAGE_FOLDER

@app.route("/images/<filename>")
def get_image(filename):
    return send_from_directory(app.config["UPLOAD_FOLDER"], filename)

# Create folders to store uploaded images
UPLOAD_FOLDER = "uploads"
IMAGE_FOLDER = os.path.join(UPLOAD_FOLDER, "images")

for folder in [UPLOAD_FOLDER, IMAGE_FOLDER]:
    os.makedirs(folder, exist_ok=True)

# Create a dictionary to store available images
available_images = {}

@app.route("/upload", methods=["POST"])
def upload_image():
    url = request.form.get("url")

    if not url:
        return jsonify({"message": "URL parameter is missing"}), 400

    # Check if the URL is valid and get the image content
    try:
        response = requests.get(url)
        response.raise_for_status()
    except requests.exceptions.RequestException as e:
        return jsonify({"message": f"Error fetching image from URL: {str(e)}"}), 400

    # Check if the response content is an image
    content_type = response.headers.get('content-type')
    if 'image' not in content_type:
        return jsonify({"message": "The provided URL does not lead to an image"}), 400

    # Determine the file format
    if 'jpeg' in content_type:
        file_extension = 'jpg'
    elif 'png' in content_type:
        file_extension = 'png'
    else:
        return jsonify({"message": "Unsupported image format"}), 400

    # Save the image
    filename = f"uploaded_image.{file_extension}"
    image_path = os.path.join(IMAGE_FOLDER, filename)
    with open(image_path, 'wb') as f:
        f.write(response.content)

    # Update available images dictionary
    available_images[filename] = {"url": url, "name": filename}

    return jsonify({"message": "File uploaded successfully", "image_url": f"/images/{filename}"})


if __name__ == "__main__":
    app.run(host="0.0.0.0", port=7860, debug=True)