File size: 4,585 Bytes
0657260
3293cdd
 
 
 
fa37d06
56b8c24
3293cdd
 
 
 
 
 
 
 
 
 
 
 
 
 
 
25f98fc
3293cdd
 
 
 
 
 
 
 
 
25f98fc
3293cdd
 
fa37d06
3293cdd
fa37d06
 
 
 
3293cdd
 
 
 
 
 
 
 
 
 
 
fa37d06
 
 
 
3293cdd
0657260
fa37d06
0657260
 
56b8c24
3293cdd
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
fa37d06
3293cdd
 
25f98fc
0de5455
3293cdd
fa37d06
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
3293cdd
 
 
 
 
 
 
56b8c24
8834783
56b8c24
 
 
 
 
3293cdd
 
 
 
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
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>File Upload</title>
    <link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/npm/toastify-js/src/toastify.min.css">
    <style>
        body {
            font-family: Arial, sans-serif;
            text-align: center;
            background-color: #f0f0f0;
            margin: 0;
            padding: 0;
        }
        h1 {
            background-color: #4CAF50;
            color: white;
            padding: 20px;
            margin: 0;
            border-bottom: 2px solid #388E3C;
        }
        button[type="submit"] {
            color: white;
            background-color: #4CAF50;
            border: none;
            cursor: pointer;
            padding: 10px 20px;
            font-size: 16px;
            border-radius: 5px;
            margin-top: 20px;
        }
        button[type="submit"]:hover {
            background-color: #388E3C;
        }
        #mediaContainer {
            margin-top: 20px;
            display: flex;
            justify-content: center;
            align-items: center;
            flex-direction: column;
        }
        #imageUrl {
            margin-top: 20px;
            font-size: 16px;
            color: #333;
            cursor: pointer;
            text-decoration: underline;
        }
    </style>
</head>
<body>
    <h1>Upload File</h1>
    <div id="mediaContainer">
        <!-- Media content will be displayed here -->
    </div>
    <div id="imageUrl" onclick="copyToClipboard(this)">Click to copy URL</div>
    <form id="uploadForm" enctype="multipart/form-data" method="post" action="/upload">
        <input type="file" name="file">
        <button type="submit">Upload</button>
    </form>
    <script type="text/javascript" src="https://cdn.jsdelivr.net/npm/toastify-js"></script>
    <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 => {
                var fullUrl = data.split('saved to ')[1];
                document.getElementById('imageUrl').innerText = fullUrl;
                displayMedia(fullUrl);
            })
            .catch(error => {
                console.error('Error:', error);
            });
        });
        function displayMedia(url) {
            var mediaContainer = document.getElementById('mediaContainer');
            mediaContainer.innerHTML = '';
            var extension = url.split('.').pop().toLowerCase();
            if (['jpg', 'jpeg', 'png', 'gif'].includes(extension)) {
                var img = document.createElement('img');
                img.src = url;
                img.style.width = '300px';
                img.style.height = '300px';
                mediaContainer.appendChild(img);
            } else if (['mp4', 'webm', 'ogg'].includes(extension)) {
                var video = document.createElement('video');
                video.src = url;
                video.controls = true;
                video.style.width = '300px';
                video.style.height = '300px';
                mediaContainer.appendChild(video);
            } else if (['mp3', 'wav', 'ogg'].includes(extension)) {
                var audio = document.createElement('audio');
                audio.src = url;
                audio.controls = true;
                mediaContainer.appendChild(audio);
            } else {
                mediaContainer.innerText = 'Unsupported file type';
            }
        }
        function copyToClipboard(element) {
            var tempInput = document.createElement("input");
            tempInput.value = element.innerText;
            document.body.appendChild(tempInput);
            tempInput.select();
            document.execCommand("copy");
            document.body.removeChild(tempInput);
            Toastify({
                text: "URL copied to clipboard",
                duration: 3000,
                gravity: "top",
                position: "center",
                backgroundColor: "#4CAF50",
            }).showToast();
        }
    </script>
</body>
</html>