diff --git a/web/templates/iso.html b/web/templates/iso.html index 1f6ef1d..4644c9a 100644 --- a/web/templates/iso.html +++ b/web/templates/iso.html @@ -11,7 +11,7 @@
ISO
-
Управление образами в /var/lib/virtuality/iso
+
Установочные образы только .iso в /var/lib/virtuality/iso
user: {{ user }} @@ -28,15 +28,15 @@
-

Загрузить ISO

- upload .iso +

Загрузить установочный ISO

+ только .iso
-
Файл ещё не выбран.
+
Файл ещё не выбран. В этом разделе разрешены только установочные образы .iso.
@@ -89,7 +89,7 @@ ls -lh /var/lib/virtuality/iso {% else %} - ISO пока нет. Загрузи первый образ через форму выше. + ISO пока нет. Загрузи первый установочный .iso через форму выше. {% endfor %} @@ -117,15 +117,31 @@ ls -lh /var/lib/virtuality/iso return value.toFixed(value >= 10 || i === 0 ? 0 : 1) + ' ' + units[i]; } + function validIsoFile(file) { + return file && file.name && file.name.toLowerCase().endsWith('.iso'); + } + fileInput.addEventListener('change', function () { const file = fileInput.files[0]; - hint.textContent = file ? file.name + ' · ' + bytesText(file.size) : 'Файл ещё не выбран.'; + if (!file) { + hint.textContent = 'Файл ещё не выбран. В этом разделе разрешены только установочные образы .iso.'; + return; + } + if (!validIsoFile(file)) { + hint.textContent = 'Неверный тип файла. Здесь можно выбрать только .iso.'; + fileInput.value = ''; + return; + } + hint.textContent = file.name + ' · ' + bytesText(file.size); }); form.addEventListener('submit', function (event) { event.preventDefault(); const file = fileInput.files[0]; - if (!file) return; + if (!validIsoFile(file)) { + hint.textContent = 'Выбери установочный образ .iso.'; + return; + } const xhr = new XMLHttpRequest(); const data = new FormData(form);