Rooni commited on
Commit
bfd5b9c
·
verified ·
1 Parent(s): 3c7b066

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +19 -7
app.py CHANGED
@@ -1,26 +1,38 @@
1
- from flask import Flask, request, jsonify
2
  import base64
3
  from io import BytesIO
4
- import json
 
5
 
6
  app = Flask(__name__)
 
7
 
8
  @app.route('/')
9
  def process_bytesio():
10
  data = request.json # Получаем JSON из запроса
11
  if data and "BytesIO" in data:
12
- # Преобразуем строку в BytesIO
13
  input_str = data["BytesIO"]
14
  input_bytes = base64.b64decode(input_str) # Декодируем из base64
15
  bytes_io = BytesIO(input_bytes)
16
 
17
- # Конвертируем BytesIO в base64 (мы можем это сделать сразу, т.к. input_bytes уже в байтах)
18
- b64_encoded = base64.b64encode(bytes_io.getvalue()).decode('utf-8')
 
 
19
 
20
- # Отправляем ответ
21
- return jsonify({"base64": b64_encoded})
 
 
 
 
 
 
 
22
  else:
23
  return jsonify({"error": "No data provided or missing 'BytesIO' key"}), 400
24
 
25
  if __name__ == '__main__':
 
 
26
  app.run(host='0.0.0.0', port=7860)
 
1
+ from flask import Flask, request, jsonify, url_for
2
  import base64
3
  from io import BytesIO
4
+ import os
5
+ from datetime import datetime
6
 
7
  app = Flask(__name__)
8
+ app.config['UPLOAD_FOLDER'] = 'static/images' # Папка для сохранения изображений
9
 
10
  @app.route('/')
11
  def process_bytesio():
12
  data = request.json # Получаем JSON из запроса
13
  if data and "BytesIO" in data:
 
14
  input_str = data["BytesIO"]
15
  input_bytes = base64.b64decode(input_str) # Декодируем из base64
16
  bytes_io = BytesIO(input_bytes)
17
 
18
+ # Генерируем уникальное имя файла для сохранения изображения
19
+ timestamp = datetime.now().strftime("%Y%m%d%H%M%S")
20
+ filename = f'image_{timestamp}.png'
21
+ filepath = os.path.join(app.config['UPLOAD_FOLDER'], filename)
22
 
23
+ # Сохраняем изображение
24
+ with open(filepath, 'wb') as f:
25
+ f.write(bytes_io.getbuffer())
26
+
27
+ # Генерируем URL для доступа к изображению
28
+ image_url = url_for('static', filename=os.path.join('images', filename), _external=True)
29
+
30
+ # Отправляем ответ с URL изображения
31
+ return jsonify({"image_url": image_url})
32
  else:
33
  return jsonify({"error": "No data provided or missing 'BytesIO' key"}), 400
34
 
35
  if __name__ == '__main__':
36
+ # Убедитесь, что папка для загрузки существует
37
+ os.makedirs(app.config['UPLOAD_FOLDER'], exist_ok=True)
38
  app.run(host='0.0.0.0', port=7860)