Spaces:
Running
Running
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)
|