- try {
- const response = await fetch("/new/upload", {
- method: "POST",
- body: formData,
- });
-
- const text = await response.text();
-
- if (response.ok) {
- responseMessage.textContent = text;
- } else {
- responseMessage.textContent =
- `Upload failed (${response.status}): ${text}`;
- }
- } catch (error) {
- console.error(error);
+<head>
+ <meta charset="UTF-8" />
+ <meta name="viewport" content="width=device-width, initial-scale=1.0" />
+ <title>File Upload</title>
+ <link rel="stylesheet" href="/styles.css" />
+</head>
+
+<body>
+ <h1>File Upload</h1>
+
+ <form id="upload-form">
+ <div>
+ <label for="file">File:</label>
+ <input type="file" id="file" name="file" required />
+ </div>
+
+ <div>
+ <label for="filename">Save as (optional):</label>
+ <input type="text" id="filename" name="filename" placeholder="Leave blank to keep original filename" />
+ </div>
+
+ <div>
+ <label for="password">Password:</label>
+ <input type="password" id="password" name="password" required />
+ </div>
+
+ <button type="submit">Upload</button>
+ <a href="/list" id="list">file list!</a>
+ </form>
+
+ <p id="response-message"></p>
+
+ <div id="footnote">
+ <p>Check out my related blog post <a href="http://taranathan.com/blog/gleam/">here!</a></p>
+ </div>
+
+ <script>
+ document
+ .getElementById("upload-form")
+ .addEventListener("submit", async function (event) {
+ event.preventDefault();
+
+ const formData = new FormData();
+
+ const fileInput = document.getElementById("file");
+ const filenameInput = document.getElementById("filename");
+ const passwordInput = document.getElementById("password");
+ const responseMessage =
+ document.getElementById("response-message");
+
+ formData.append("file", fileInput.files[0]);
+ formData.append("password", passwordInput.value);
+
+ if (filenameInput.value.trim()) {
+ formData.append("filename", filenameInput.value.trim());
+ }
+
+ try {
+ const response = await fetch("/new/upload", {
+ method: "POST",
+ body: formData,
+ });
+
+ const text = await response.text();
+
+ if (response.ok) {
+ responseMessage.textContent = text;
+ } else {