deploy draft version
This commit is contained in:
parent
22f8480e1a
commit
1bae5969ab
7 changed files with 166 additions and 0 deletions
6
Dockerfile
Normal file
6
Dockerfile
Normal file
|
@ -0,0 +1,6 @@
|
|||
FROM php:8.0-apache
|
||||
WORKDIR /var/www
|
||||
COPY src/ html/
|
||||
RUN mkdir uploads && chown -R www-data:www-data uploads
|
||||
RUN apt-get update && apt-get -y install ffmpeg
|
||||
EXPOSE 80/tcp
|
5
src/css/pico.min.css
vendored
Normal file
5
src/css/pico.min.css
vendored
Normal file
File diff suppressed because one or more lines are too long
1
src/css/pico.min.css.map
Normal file
1
src/css/pico.min.css.map
Normal file
File diff suppressed because one or more lines are too long
BIN
src/fonts/anybody.ttf
Normal file
BIN
src/fonts/anybody.ttf
Normal file
Binary file not shown.
49
src/index.php
Normal file
49
src/index.php
Normal file
|
@ -0,0 +1,49 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
|
||||
<head>
|
||||
<link rel="stylesheet" href="css/pico.min.css">
|
||||
</head>
|
||||
|
||||
<body>
|
||||
|
||||
<header class="container">
|
||||
<hgroup>
|
||||
<h1>Munta</h1>
|
||||
<p>Your locally hosted one-stop-shop for all your conversion needs.</p>
|
||||
</hgroup>
|
||||
</header>
|
||||
|
||||
<main class="container">
|
||||
<form action="upload.php" method="post" enctype="multipart/form-data">
|
||||
<input id="picker" type="file" name="file">
|
||||
<div id="buttons" class="grid"></div>
|
||||
</form>
|
||||
</main>
|
||||
<script>
|
||||
document.getElementById('picker').addEventListener('change', function(e) {
|
||||
if (e.target.files[0]) {
|
||||
fetch('json/conversions.json')
|
||||
.then((response) => response.json())
|
||||
.then((json) => {
|
||||
const fromExt = e.target.files[0].name.split('.').pop();
|
||||
const elButtons = document.getElementById("buttons");
|
||||
|
||||
while (elButtons.firstChild) {
|
||||
elButtons.removeChild(elButtons.lastChild);
|
||||
}
|
||||
|
||||
for (toExt of json[fromExt]) {
|
||||
const elButton = document.createElement("input");
|
||||
elButton.setAttribute("type", "submit");
|
||||
elButton.setAttribute("name", "submit");
|
||||
elButton.setAttribute("value", toExt);
|
||||
elButtons.appendChild(elButton);
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
</script>
|
||||
</body>
|
||||
|
||||
</html>
|
84
src/json/conversions.json
Normal file
84
src/json/conversions.json
Normal file
|
@ -0,0 +1,84 @@
|
|||
{
|
||||
"jpeg": [
|
||||
"jp2",
|
||||
"webp",
|
||||
"png",
|
||||
"gif"
|
||||
],
|
||||
"jp2": [
|
||||
"jpeg",
|
||||
"webp",
|
||||
"png",
|
||||
"gif"
|
||||
],
|
||||
"webp": [
|
||||
"jpeg",
|
||||
"jp2",
|
||||
"png",
|
||||
"gif"
|
||||
],
|
||||
"png": [
|
||||
"jpeg",
|
||||
"jp2",
|
||||
"webp",
|
||||
"gif"
|
||||
],
|
||||
"gif": [
|
||||
"jpeg",
|
||||
"jp2",
|
||||
"webp",
|
||||
"png"
|
||||
],
|
||||
|
||||
"av1": [
|
||||
"mkv",
|
||||
"webm",
|
||||
"ogv"
|
||||
],
|
||||
"mkv": [
|
||||
"av1",
|
||||
"webm",
|
||||
"ogv"
|
||||
],
|
||||
"webm": [
|
||||
"av1",
|
||||
"mkv",
|
||||
"ogv"
|
||||
],
|
||||
"ogv": [
|
||||
"av1",
|
||||
"mkv",
|
||||
"webm"
|
||||
],
|
||||
|
||||
"alac": [
|
||||
"flac",
|
||||
"mp3",
|
||||
"ogg",
|
||||
"wav"
|
||||
],
|
||||
"flac": [
|
||||
"alac",
|
||||
"mp3",
|
||||
"ogg",
|
||||
"wav"
|
||||
],
|
||||
"mp3": [
|
||||
"alac",
|
||||
"flac",
|
||||
"ogg",
|
||||
"wav"
|
||||
],
|
||||
"ogg": [
|
||||
"alac",
|
||||
"flac",
|
||||
"mp3",
|
||||
"wav"
|
||||
],
|
||||
"wav": [
|
||||
"alac",
|
||||
"flac",
|
||||
"ogg",
|
||||
"mp3"
|
||||
]
|
||||
}
|
21
src/upload.php
Normal file
21
src/upload.php
Normal file
|
@ -0,0 +1,21 @@
|
|||
<?php
|
||||
|
||||
$fromExt = strtolower(pathinfo($_FILES["file"]["name"])['extension']);
|
||||
$toExt = $_POST["submit"];
|
||||
$targPat = "/var/www/uploads/upload.$fromExt";
|
||||
|
||||
move_uploaded_file($_FILES["file"]["tmp_name"], $targPat);
|
||||
|
||||
chdir('/var/www/uploads/');
|
||||
exec("ffmpeg -y -i upload.$fromExt output.$toExt");
|
||||
|
||||
header("Cache-Control: public");
|
||||
header("Content-Description: File Transfer");
|
||||
header("Content-Disposition: attachment; filename=output.$toExt");
|
||||
header("Content-Type: application/jpeg");
|
||||
header("Content-Transfer-Encoding: binary");
|
||||
|
||||
readfile("/var/www/uploads/output.$toExt");
|
||||
|
||||
?>
|
||||
|
Loading…
Reference in a new issue