add json db to php
This commit is contained in:
parent
5a75e8eadc
commit
cda0c33a5d
|
@ -0,0 +1,158 @@
|
||||||
|
<?php
|
||||||
|
/***
|
||||||
|
* DB
|
||||||
|
* A simple json db class
|
||||||
|
*/
|
||||||
|
class DB
|
||||||
|
{
|
||||||
|
private $path = '';
|
||||||
|
private $db = [];
|
||||||
|
|
||||||
|
/**
|
||||||
|
* CONSTRUCTOR
|
||||||
|
*
|
||||||
|
* @param $path: string (default 'db.json')
|
||||||
|
*/
|
||||||
|
public function __construct($path = "db.json"){
|
||||||
|
$this->path = $path;
|
||||||
|
|
||||||
|
if(!file_exists($path)){
|
||||||
|
// If the .json extension is not provided, append it
|
||||||
|
if(strpos($path, '.json') === false){ $path .= '.json'; }
|
||||||
|
|
||||||
|
$fp = fopen($path,"wb");
|
||||||
|
fwrite($fp, "{}");
|
||||||
|
fclose($fp);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Get the contect of the current path
|
||||||
|
$this->db = json_decode(file_get_contents($path), false, 512, JSON_UNESCAPED_UNICODE);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* SAVE
|
||||||
|
* Save the new db
|
||||||
|
*/
|
||||||
|
private function save(){
|
||||||
|
$json = ($this->db === "{}") ? $this->db : json_encode($this->db, JSON_UNESCAPED_UNICODE);
|
||||||
|
|
||||||
|
file_put_contents($this->path, $json);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* INSERT
|
||||||
|
*
|
||||||
|
* @param $data: array
|
||||||
|
* @param $key: string (optional)
|
||||||
|
*
|
||||||
|
* @return DB
|
||||||
|
*/
|
||||||
|
public function insert($data, $key = ""){
|
||||||
|
if($key !== "")
|
||||||
|
$this->db[$key] = $data;
|
||||||
|
else
|
||||||
|
$this->db[] = $data;
|
||||||
|
|
||||||
|
$this->save();
|
||||||
|
|
||||||
|
return $this;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* UPDATE
|
||||||
|
*
|
||||||
|
* @param $data: array
|
||||||
|
* @param $key: string
|
||||||
|
*
|
||||||
|
* @return DB
|
||||||
|
*/
|
||||||
|
public function update($data, $key){
|
||||||
|
if($key !== "")
|
||||||
|
$update = array_merge($this->db[$key], $data);
|
||||||
|
$this->db[$key] = $update;
|
||||||
|
|
||||||
|
$this->save();
|
||||||
|
|
||||||
|
return $this;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* DELETE
|
||||||
|
*
|
||||||
|
* @param $key: string
|
||||||
|
*
|
||||||
|
* @return DB
|
||||||
|
*/
|
||||||
|
public function delete($key){
|
||||||
|
unset($this->db[$key]);
|
||||||
|
|
||||||
|
$this->save();
|
||||||
|
|
||||||
|
return $this;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* GET SINGLE
|
||||||
|
*
|
||||||
|
* @param $key: string
|
||||||
|
*
|
||||||
|
* @return array
|
||||||
|
*/
|
||||||
|
public function getSingle($key){
|
||||||
|
return $this->db[$key] ?? null;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* GET LIST
|
||||||
|
*
|
||||||
|
* @param $conditions: array (optional)
|
||||||
|
* @param $orderBy: array (optional)
|
||||||
|
*
|
||||||
|
* @return array
|
||||||
|
*/
|
||||||
|
public function getList($conditions = [], $orderBy = []){
|
||||||
|
$result = [];
|
||||||
|
|
||||||
|
if(empty($conditions)){
|
||||||
|
$result = $this->db;
|
||||||
|
}else{
|
||||||
|
foreach($this->db as $key => $value){
|
||||||
|
$requirements = true;
|
||||||
|
|
||||||
|
foreach($conditions as $k => $v){
|
||||||
|
if($value[$k] !== $v){
|
||||||
|
$requirements = false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if($requirements) $result[$key] = $value;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if($orderBy['on'] !== '' && $orderBy['order'] !== ''){
|
||||||
|
usort($result, function($first, $second) use($orderBy){
|
||||||
|
if($orderBy['order'] === "ASC"){
|
||||||
|
return strcmp($first[$orderBy['on']], $second[$orderBy['on']]) > 0;
|
||||||
|
}else{
|
||||||
|
return strcmp($first[$orderBy['on']], $second[$orderBy['on']]) < 0;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
return $result;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* CLEAR
|
||||||
|
*
|
||||||
|
* @return DB
|
||||||
|
*/
|
||||||
|
public function clear(){
|
||||||
|
$this->db = "{}";
|
||||||
|
|
||||||
|
$this->save();
|
||||||
|
|
||||||
|
return $this;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
?>
|
114
php/upload.php
114
php/upload.php
|
@ -1,52 +1,94 @@
|
||||||
<?php
|
<?php
|
||||||
$username = $_SERVER['PHP_AUTH_USER'];
|
|
||||||
$target_dir = "/var/www/html/aliceclass_videos/" . $username;
|
// Cria as pastas do usuário
|
||||||
$paths = array('', '/src', '/dest', '/thumbs')
|
function create_user_dir($target_dir) {
|
||||||
|
$paths = array('', '/src', '/dest', '/thumbs');
|
||||||
foreach($paths as $path) {
|
foreach($paths as $path) {
|
||||||
file_exists($target_dir . $path) || mkdir($target_dir . $path, 0775, true)
|
file_exists($target_dir . $path) || mkdir($target_dir . $path, 0775, true);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Checa a extensão do arquivo
|
||||||
|
function check_file_extension($target_file) {
|
||||||
$fileType = strtolower(pathinfo($target_file,PATHINFO_EXTENSION));
|
$fileType = strtolower(pathinfo($target_file,PATHINFO_EXTENSION));
|
||||||
$uploadOk = 1;
|
|
||||||
|
|
||||||
// if ($fileType != '.mkv') {
|
if ($fileType != '.mkv') {
|
||||||
// echo "Apenas arquivos .mkv são aceitos. ";
|
echo "Apenas arquivos .mkv são aceitos. ";
|
||||||
// $uploadOk = 0;
|
exit(1);
|
||||||
// }
|
}
|
||||||
|
|
||||||
// echo $_POST["videoTitle"];
|
return 1;
|
||||||
$ext = ".mkv";
|
}
|
||||||
|
|
||||||
|
// Checa se o arquivo existe
|
||||||
|
function check_file_exists($brute_file) {
|
||||||
|
if (file_exists($brute_file)) {
|
||||||
|
echo "Sorry, file already exists.";
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Move uploaded file to correct dir
|
||||||
|
function upload($orig_file, $brute_file) {
|
||||||
|
if (!move_uploaded_file($orig_file, $brute_file)) {
|
||||||
|
echo "Houve um problema com o upload do arquivo.";
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Processa o vídeo com o script do flavio
|
||||||
|
function process_file($username, $title, $input_file, $output_file) {
|
||||||
|
$cmd = sprintf('%s "%s" "%s" "%s" "%s" "%s"',
|
||||||
|
$SCRIPT_PATH, $title, $username, $input_file, '', $output_file);
|
||||||
|
|
||||||
|
$output = shell_exec($cmd);
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
function insert_into_db($username, $title, $desc, $level, $software, $date) {
|
||||||
|
|
||||||
|
include("library/json-db.class.php");
|
||||||
|
|
||||||
|
$db = new DB('/var/www/src/AliceClass/_data/aulas.json');
|
||||||
|
|
||||||
|
$data = array(
|
||||||
|
"title" => $title,
|
||||||
|
"user" => $username,
|
||||||
|
"nome" => $username,
|
||||||
|
"description" => $desc,
|
||||||
|
"date" => $date,
|
||||||
|
"software" => $software,
|
||||||
|
"level" => $level
|
||||||
|
);
|
||||||
|
|
||||||
|
$db->insert($data);
|
||||||
|
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
$username = $_SERVER['PHP_AUTH_USER'];
|
||||||
|
|
||||||
$video_title = $_POST["videoTitle"];
|
$video_title = $_POST["videoTitle"];
|
||||||
$video_desc = $_POST["videoDescription"];
|
$video_desc = $_POST["videoDescription"];
|
||||||
$video_date = date('d/m/Y');
|
|
||||||
$video_level = $_POST["level"];
|
$video_level = $_POST["level"];
|
||||||
|
$video_software = $_POST["software"];
|
||||||
|
$video_date = date('d/m/Y');
|
||||||
|
|
||||||
$brute_file = $target_dir . "/src/" . $video_title . $ext;
|
$orig_file = $_FILES["fileToUpload"]["tmp_name"];
|
||||||
|
$target_dir = "/var/www/html/aliceclass_videos/" . $username;
|
||||||
|
$brute_file = $target_dir . "/src/" . $video_title . '.mkv';
|
||||||
$target_file = $target_dir . "/dest/" . $video_title . '.mp4';
|
$target_file = $target_dir . "/dest/" . $video_title . '.mp4';
|
||||||
|
|
||||||
// Check if file already exists
|
create_user_dir($target_dir) || exit;
|
||||||
if (file_exists($brute_file)) {
|
check_file_extension($_FILES["fileToUpload"]["tmp_name"]) || exit;
|
||||||
echo "Sorry, file already exists.";
|
!check_file_exists($brute_file) || exit;
|
||||||
$uploadOk = 0;
|
upload($brute_file) || exit;
|
||||||
}
|
process_file($username, $video_title, $brute_file, $target_file) || exit;
|
||||||
|
insert_into_db($username, $video_title, $video_desc, $video_level, $video_software, $video_date);
|
||||||
|
|
||||||
if ($uploadOk == 1) {
|
echo "The file ". htmlspecialchars(basename($orig_file)). " has been uploaded.";
|
||||||
if (!move_uploaded_file($_FILES["fileToUpload"]["tmp_name"], $brute_file)) {
|
|
||||||
echo "Houve um problema com o upload do arquivo.";
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// return;
|
|
||||||
|
|
||||||
echo "The file ". htmlspecialchars(basename( $_FILES["videoTitle"]["name"])). " has been uploaded.";
|
|
||||||
$SCRIPT_PATH = "/var/www/src/AliceClass/script/script.sh";
|
|
||||||
$AUTHOR = $username;
|
|
||||||
$NAME = $_POST["videoTitle"];
|
|
||||||
$INPUT = $brute_file;
|
|
||||||
$OUTPUT = $target_file;
|
|
||||||
|
|
||||||
$cmd = sprintf('%s "%s" "%s" "%s" "%s" "%s"', $SCRIPT_PATH, $NAME, $AUTHOR, $INPUT, 'aulateste', $OUTPUT);
|
|
||||||
$output = shell_exec($cmd);
|
|
||||||
?>
|
?>
|
||||||
|
|
Loading…
Reference in New Issue