<?php
require_once('../classes/body.class.php');
require_once('../classes/db.class.php');
require_once('../classes/system.class.php');
$title= new Body;
$title->SetTitle('Загруз-центр - Новый файл');
$title->GetHeader();
$query = DB :: $dbs -> query ("SELECT * FROM `down_pr` WHERE `id` = ?", [(int)$_GET['id']]);
if ($query -> rowCount () == 0) {
header ('location: /');
exit;
}
$pr = $query -> fetch();
$raz = DB :: $dbs -> queryFetch("SELECT * FROM `down_r` WHERE `id` = ?", [$pr['id_r']]);
echo'<div class="tile"><div class="t-header th-alt bg-teal"><div class="th-title"><i class="zmdi zmdi-widgets"></i><a href="/"style="text-decoration:none; color:white;"> Главная</a> :: <a href="/downs"style="text-decoration:none; color:white;"> Загрузки</a> :: Новый файл</div></div></div>';
$zip = new ZipArchive;
if (isset($_POST['add'])) {
$err = [];
$upl = intval($_POST['upl']);
$row = abs(intval($_POST['row']));
$name = check($_POST['name']);
$author = check($_POST['author']);
$pass = check($_POST['pass']);
$info = check($_POST['info']);
$thema = abs((int)$_POST['thema']);
if (isset($_POST['url'])) $url = htmlentities($_POST['url']);
if (empty($upl)) {
$FileName = $_FILES['object']['name'];
$FileSize = $_FILES['object']['size'];
$ScreenName = $_FILES['screen']['name'];
$ScreenSize = $_FILES['screen']['size'];
$archive = ['.zip','.rar','.7z','.tar','.gz','.apk','.mp3','.amr','.wav','.txt','.pdf','.doc','.docx','.rtf','.djvu','.xls','.xlsx','.sis','.sisx','.jad','.jar','.nth','.jpg','.jpeg','.gif','.png','.bmp','.sis','.sisx','.3gp','.avi','.flv','.mpeg','.mp4','.exe','.msi','.wmf'];
$frm = ['.jpg', '.jpeg', '.gif', '.png'];
$ext = strtolower(strrchr($FileName, '.'));
$scr = mb_strtolower(strrchr($ScreenName, '.'), 'UTF8');
if (empty($name)) {
$err[] = 'Введите название.';
}
if (empty($info)) {
$err[] = 'Введите описание.';
}
if ($raz['id'] != 7) {
if (empty($author)) {
$err[] = 'Укажите автора файла!';
}
}
if ($FileSize > (1024 * 30 * 1024)) {
$err[] = 'Размер файла не должен быть более 20 Mb!';
}
if (empty($FileName)) {
$err[] = 'Не выбран файл!';
}
if ($raz['id'] != 7) {
if (empty($ScreenName)) {
$err[] = 'Выберите скриншот.';
}
}
if (preg_match('/(\.php|\.pl|\.htaccess)/i', $FileName) || !in_array($ext, $archive)) {
$err[] = 'Запрещенный формат файла!';
}
if (!empty($ScreenName) && $ScreenSize > (1024 * 1000)) {
$err[] = 'Размер скриншота не должен быть более 1000 Kb!';
}
if (!empty($ScreenName) && preg_match('/(\.php|\.pl|\.htaccess)/i', $ScreenName) || !empty($ScreenName) && !in_array($scr, $frm)) {
$err[] = 'Скриншот не является изображением!';
}
if (empty($err)) {
if ($zip->open($_FILES['object']['tmp_name']) === TRUE) {
$zip->setArchiveComment(homeurl . ' - best collection of scripts.');
$zip->addFromString('ReadMe_'.homeurl.''.'.txt', 'Cкрипт проверен и исправлен на сайте '.homeurl.' заходите еще!)');
$zip->close();
}
$FileName = retrans(check($FileName));
$NameFile = 'files/downs/'.homeurl.'_' . mt_rand(10000, 99999) . '_' .$FileName;
copy($_FILES['object']['tmp_name'], $_SERVER['DOCUMENT_ROOT'].'/'.$NameFile);
if (!empty($ScreenName)) {
$ScreenFile = 'files/downs/screen/'.homeurl.'_' . mt_rand(10000, 99999) . '_' . retrans($ScreenName);
$Sc = $_SERVER['DOCUMENT_ROOT'].'/'.$ScreenFile;
copy($_FILES['screen']['tmp_name'], $_SERVER['DOCUMENT_ROOT'].'/'.$ScreenFile);
if ($ext != '.gif') {
$imgc = imagecreatefromstring(file_get_contents($_FILES['screen']['tmp_name']));
$imgc = img_copyright($imgc);
imagejpeg($imgc, $Sc, 90);
}
}
if ($raz['id'] != 7) {
DB::$dbs->query("INSERT INTO `downs` SET `url` = ?,`time` = ?,`user_id` = ?,`name` = ?, `info` = ?,`prid` = ?,`rid` = ?, `row` = ?, `author` = ?, `size` = ?, `mod` = ?, `thema` = ?", [$NameFile,time(),$b['id'],$name,$info,$pr['id'],$raz['id'],$row,$author,$FileSize,1,$thema]);
} else {
DB::$dbs->query("INSERT INTO `downs` SET `url` = ?,`time` = ?,`user_id` = ?,`name` = ?, `info` = ?,`prid` = ?,`rid` = ?, `size` = ?, `mod` = ?", [$NameFile,time(),$b['id'],$name,$info,$pr['id'],$raz['id'],$FileSize,0]);
}
$last = DB::$dbs->lastInsertId();
if (!empty($ScreenFile)) {
DB::$dbs->query("INSERT INTO `down_screen` SET `fid` = ?, `file` = ?", [$last,$ScreenFile]);
}
$f = DB :: $dbs -> queryFetch("SELECT * FROM `downs` WHERE `id` = ?", [$last]);
if (!empty($pass)) {
DB::$dbs->query("UPDATE downs SET pass = ? WHERE id = ?", [$pass,$last]);
}
if ($raz['id'] == 7) {
header('location: file.html?id='.$last);
} else {
echo '<div class="alert alert-success"role="alert">Файл добавлен и отправлен на рассмотрение!</div>';
$title->GetMenu();
$title->GetFooter();
die();
}
} else {
echo'<div class="alert alert-danger"role="alert">';
foreach($err AS $error) {
echo $error.'<br/>';
}
echo'</div>';
}
} elseif ($upl == 1) {
$ScreenName = $_FILES['screen']['name'];
$ScreenSize = $_FILES['screen']['size'];
$file = getWithOutPath($url);
$format = mb_strtolower(strrchr($file, '.'), 'UTF8');
$scr = mb_strtolower(strrchr($ScreenName, '.'), 'UTF8');
$ext = ['.zip','.rar','.7z','.tar','.gz','.apk','.mp3','.amr','.wav','.txt','.pdf','.doc','.docx','.rtf','.djvu','.xls','.xlsx','.sis','.sisx','.jad','.jar','.nth','.jpg','.jpeg','.gif','.png','.bmp','.sis','.sisx','.3gp','.avi','.flv','.mpeg','.mp4','.exe','.msi','.wmf'];
$frm = ['.jpg', '.jpeg', '.gif', '.png'];
$f = @fopen($url, 'r');
while($c = @fread($f, 1024)) $filedata .= $c;
if (empty($name)) {
$err[] = 'Введите название.';
}
if (empty($info)) {
$err[] = 'Введите описание.';
}
if ($raz['id'] != 7) {
if (empty($author)) {
$err[] = 'Укажите автора файла!';
}
}
if ($raz['id'] != 7) {
if (empty($ScreenName)) {
$err[] = 'Выберите скриншот.';
}
}
if (!$f) {
$err[] = 'Ошибка импортирования файла!';
}
if (preg_match('/(\.php|\.pl|\.htaccess)/i', $file) || !in_array($format, $ext)) {
$err[] = 'Файл не является архивом!';
}
if (!empty($ScreenName) && $ScreenSize > (1024 * 1000)) {
$err[] = 'Размер скриншота не должен быть более 1000 Kb!';
}
if (!empty($ScreenName) && preg_match('/(\.php|\.pl|\.htaccess)/i', $ScreenName) || !empty($ScreenName) && !in_array($scr, $frm)){
$err[] = 'Скриншот не является изображением!';
}
if (strlen($filedata) > (1024 * 30 * 1024)) {
$err[] = 'Слишком большой размер файла!';
}
if (empty($err)) {
$file = retrans($file);
if (!empty($ScreenName)) {
$ScreenFile = 'files/downs/screen/'.homeurl.'_' . mt_rand(10000, 99999) . '_' . retrans($ScreenName);
$Sc = $_SERVER['DOCUMENT_ROOT'].'/'.$ScreenFile;
copy($_FILES['screen']['tmp_name'], $_SERVER['DOCUMENT_ROOT'].'/'.$ScreenFile);
if ($ext != '.gif') {
$imgc = imagecreatefromstring(file_get_contents($_FILES['screen']['tmp_name']));
$imgc = img_copyright($imgc);
imagejpeg($imgc, $Sc, 90);
}
}
$NameFile = 'files/downs/'.homeurl.'_' . mt_rand(10000, 99999) . '_' . $file;
$NameF = $_SERVER['DOCUMENT_ROOT'].'/'.$NameFile;
file_put_contents($NameF, $filedata);
$sizes = filesize($NameF);
if ($raz['id'] != 7) {
DB::$dbs->query("INSERT INTO `downs` SET `url` = ?,`time` = ?,`user_id` = ?,`name` = ?, `info` = ?,`prid` = ?,`rid` = ?, `row` = ?, `author` = ?, `size` = ?, `mod` = ?, `thema` = ?", [$NameFile,time(),$b['id'],$name,$info,$pr['id'],$raz['id'],$row,$author,$sizes,1,$thema]);
} else {
DB::$dbs->query("INSERT INTO `downs` SET `url` = ?,`time` = ?,`user_id` = ?,`name` = ?, `info` = ?,`prid` = ?,`rid` = ?, `size` = ?, `mod` = ?", [$NameFile,time(),$b['id'],$name,$info,$pr['id'],$raz['id'],$sizes,0]);
}
$last = DB::$dbs->lastInsertId();
if (!empty($ScreenFile)) {
DB::$dbs->query("INSERT INTO `down_screen` SET `fid` = ?, `file` = ?", [$last,$ScreenFile]);
}
$f = DB :: $dbs -> queryFetch("SELECT * FROM `downs` WHERE `id` = ?", [$last]);
if (!empty($pass)) {
DB::$dbs->query("UPDATE downs SET pass = ? WHERE id = ?", [$pass,$last]);
}
if ($raz['id'] == 7) {
header('location: file.html?id='.$last);
} else {
echo '<div class="alert alert-success"role="alert">Файл добавлен и отправлен на рассмотрение!</div>';
$title->GetMenu();
$title->GetFooter();
die();
}
} else {
echo'<div class="alert alert-danger"role="alert">';
foreach($err AS $error) {
echo $error.'<br/>';
}
echo'</div>';
}
}
}
echo '<div class="list-group-item media"><form action="?id='.$pr['id'].'" method="POST" enctype="multipart/form-data"> 
* Название:<br/><input type="text" class="form-control" name="name"/> <br/>*Описание:<br/><br/>';
quickpaste('text');
quickpanel();
echo'<br/><br/> <textarea class="form-control" rows="8" name="info"></textarea><br/>
* Файл:<br/><input type="file" name="object"/><br/>
'.($raz['id'] != 7 ? '*':NULL).' Скрин к файлу:<br/><input type="file" name="screen"/><br/>
* Пароль к файлу: (можете оставить поле пустым, чтобы все скачали)<br/><input type="text" class="form-control" name="pass"/> </textarea><br/>
'.($raz['id'] != 7 ? '* Автор файла:<br/><input type="text" class="form-control"name="author"/> <br/>':NULL).'
<input type="radio" name="upl" value="1"> Импорт<br/>Ссылка для импорта:<br/>
<input type="text" class="form-control"value="http://" name="url"/><br/>
<input type="submit" class="btn btn-primary btn-lg btn-block" name="add" value="Загрузить"/></form></div>';

$title->GetMenu();
$title->GetFooter();
?>
