You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
This repo is archived. You can view files and clone it, but cannot push or open issues/pull-requests.

69 lines
2.3 KiB
PHP

<?php
if ($_SERVER["REQUEST_METHOD"] == "POST") {
$allowedExts = array("mp4", "mov", "wmv", "flv", "avi", "avchd", "webm", "mkv", "mpeg");
$extension = pathinfo($_FILES['videoFile']['name'], PATHINFO_EXTENSION);
if ((($_FILES["videoFile"]["type"] == "video/mp4")
|| ($_FILES["videoFile"]["type"] == "video/x-msvideo")
|| ($_FILES["videoFile"]["type"] == "video/mpeg")
|| ($_FILES["videoFile"]["type"] == "video/ogg")
|| ($_FILES["videoFile"]["type"] == "video/mp2t")
|| ($_FILES["videoFile"]["type"] == "video/webm")
|| ($_FILES["videoFile"]["type"] == "video/3gpp")
|| ($_FILES["videoFile"]["type"] == "video/x-matroska")
|| ($_FILES["videoFile"]["type"] == "video/3gpp2"))
&& ($_FILES["videoFile"]["size"] < 500000000)
&& in_array(strtolower($extension), $allowedExts)
&& isset($_POST["xmlFile"])
) {
if ($_FILES["videoFile"]["error"] > 0) {
redirect("?e='" . $_FILES["videoFile"]["error"] . "'");
} else {
do {
$generatedFileName = generateRandomString();
} while (file_exists("./videos/" . $generatedFileName . "." . $extension));
move_uploaded_file(
$_FILES["videoFile"]["tmp_name"],
"videos/" .
$generatedFileName . "." . $extension
);
$xml = $_POST["xmlFile"];
$xml = str_replace("<video>", '<video src="' . $generatedFileName . '.' . $extension . '">', $xml);
$xml = str_replace("&", "&amp;", $xml);
writeToFile("./videos/" . $generatedFileName . ".xml", $xml);
redirect("?v=" . $generatedFileName);
}
} else {
redirect("?e='invalid file'");
}
} else {
redirect();
}
function writeToFile($file, $xml)
{
$myfile = fopen($file, "w") or die("Unable to open file!");
fwrite($myfile, $xml);
fclose($myfile);
}
function redirect($videoID = null)
{
header("Location: index.html" . $videoID);
die();
}
function generateRandomString($length = 4)
{
$characters = 'abcdefghijklmnopqrstuvwxyz';
$charactersLength = strlen($characters);
$randomString = '';
for ($i = 0; $i < $length; $i++) {
$randomString .= $characters[rand(0, $charactersLength - 1)];
}
return $randomString;
}