File size: 2,911 Bytes
e9edc80
ebdd193
cb037b0
ebdd193
 
 
 
 
4cd23ec
3455d8b
 
 
 
4201031
 
 
ec447d0
4cd23ec
 
2b7a155
4cd23ec
2b7a155
4cd23ec
 
ebdd193
cd1e41a
 
 
900d205
4cd23ec
 
 
 
 
 
 
 
 
 
 
 
 
 
ebdd193
 
 
 
 
 
86cf14a
c98d598
4cd23ec
ebdd193
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
4cd23ec
 
 
 
 
 
 
 
 
7851dcb
f18f04b
ebdd193
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
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
import os
from flask import Flask, request, send_from_directory, render_template_string, render_template

app = Flask(__name__, template_folder="./")
app.config['DEBUG'] = True

UPLOAD_FOLDER = 'static'
IMAGE_FILENAME = 'latest_image.jpg'

# Создание директории, если она не существует
if not os.path.exists(UPLOAD_FOLDER):
    os.makedirs(UPLOAD_FOLDER)

@app.route('/online', methods=['GET'])
def online():
    return render_template('online.html')

@app.route('/upload', methods=['POST'])
def upload_file():
    if 'photo' not in request.files:
        return "No file part", 400
    file = request.files['photo']
    if file.filename == '':
        return "No selected file", 400
    save_path = os.path.join(UPLOAD_FOLDER, IMAGE_FILENAME)
    file.save(save_path)
    return f"File uploaded successfully and saved to {save_path}", 200

@app.route('/image', methods=['GET'])
def get_image():
    return send_from_directory(UPLOAD_FOLDER, IMAGE_FILENAME)

@app.route('/')
def index():
    html = '''
    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <title>Camera Image</title>
    </head>
    <body>
        <h1>Upload Image</h1>
        <form id="uploadForm" enctype="multipart/form-data" method="post" action="/upload">
            <input type="file" name="photo">
            <button type="submit">Upload</button>
        </form>
        <div id="message"></div>
        <h1>Latest Image</h1>
        <img id="cameraImage" src="/image" alt="Image" style="width:100%;">
        <script>
            document.getElementById('uploadForm').addEventListener('submit', function(event) {
                event.preventDefault();
                var formData = new FormData(this);
                fetch('/upload', {
                    method: 'POST',
                    body: formData
                })
                .then(response => {
                    if (response.ok) {
                        return response.text();
                    }
                    throw new Error('Network response was not ok.');
                })
                .then(data => {
                    document.getElementById('message').innerText = data;
                })
                .catch(error => {
                    document.getElementById('message').innerText = 'Error: ' + error.message;
                });
            });

            setInterval(function(){
                var image = document.getElementById("cameraImage");
                image.src = "/image?" + new Date().getTime();
            }, 10000); // обновление каждые 10 секунд
        </script>
    </body>
    </html>
    '''
    return render_template_string(html)

if __name__ == '__main__':
    app.run(host='0.0.0.0', port=int(os.environ.get('PORT', 7860)))