View file ä󿪫¬/modules/groups/file/upload.php

File size: 20.2Kb
<?
foreach (array('start', 'compress', 'sess', 'settings', 'db_connect', 'ipua', 'fnc', 'user') as $inc) {
    require_once "../../../sys/inc/$inc.php";
}

only_reg('/reg.php');

if ($df['vigruzka'] == 0 || access('adm_mysql')){



if ($pdo->query(("SELECT COUNT(*) FROM `disk` WHERE `id_user` = '".$user['id']."' AND `status` = '1' LIMIT 1"), 0)->fetchColumn()){
$disk = 62914560;
}else{
if ($user['rating'] >= 0 && $user['rating'] <= 19){
$disk = 5242880;
}

if ($user['rating'] >= 20 && $user['rating'] <= 49){
$disk = 20971520;
}

if ($user['rating'] >= 50 && $user['rating'] <= 119){
$disk = 31457280;
}

if ($user['rating'] >= 120 && $user['rating'] <= 999999999999999999999){
$disk = 31457280;
}
}

?>
<style>
.progress-bar {
 background-color: #555A5E;
 height: 34px;
 padding: 5px;
 width: 100%;
 margin-top: 3px;
 -moz-border-radius: 5px;
 -webkit-border-radius: 5px;
 border-radius: 5px;
 -moz-box-shadow: 0 1px 5px #000 inset, 0 1px 0 #444;
 -webkit-box-shadow: 0 1px 5px #000 inset, 0 1px 0 #444;
 box-shadow: 0 1px 5px #000 inset, 0 1px 0 #444;
}

.progress-bar span {
 display: inline-block;
 height: 25px;
 width: 200px;
 -moz-border-radius: 3px;
 -webkit-border-radius: 3px;
 border-radius: 3px;
 -moz-box-shadow: 0 1px 0 rgba(255, 255, 255, .5) inset;
 -webkit-box-shadow: 0 1px 0 rgba(255, 255, 255, .5) inset;
 box-shadow: 0 1px 0 rgba(255, 255, 255, .5) inset;
 -webkit-transition: width .4s ease-in-out;
 -moz-transition: width .4s ease-in-out;
 -ms-transition: width .4s ease-in-out;
 -o-transition: width .4s ease-in-out;
 transition: width .4s ease-in-out;
} 

.blue span {
 background-color: #34c2e3;
}

.orange span {
 background-color: #fecf23;
 background-image: -webkit-gradient(linear, left top, left bottom, from(#fecf23), to(#fd9215));
 background-image: -webkit-linear-gradient(top, #fecf23, #fd9215);
 background-image: -moz-linear-gradient(top, #fecf23, #fd9215);
 background-image: -ms-linear-gradient(top, #fecf23, #fd9215);
 background-image: -o-linear-gradient(top, #fecf23, #fd9215);
 background-image: linear-gradient(top, #fecf23, #fd9215);
}       

.green span {
 background-color: #a5df41;
 background-image: -webkit-gradient(linear, left top, left bottom, from(#a5df41), to(#4ca916));
 background-image: -webkit-linear-gradient(top, #a5df41, #4ca916);
 background-image: -moz-linear-gradient(top, #a5df41, #4ca916);
 background-image: -ms-linear-gradient(top, #a5df41, #4ca916);
 background-image: -o-linear-gradient(top, #a5df41, #4ca916);
 background-image: linear-gradient(top, #a5df41, #4ca916);
}

.stripes span {
 -webkit-background-size: 30px 30px;
 -moz-background-size: 30px 30px;
 background-size: 30px 30px;
 background-image: -webkit-gradient(linear, left top, right bottom,
 color-stop(.25, rgba(255, 255, 255, .15)), color-stop(.25, transparent),
 color-stop(.5, transparent), color-stop(.5, rgba(255, 255, 255, .15)),
 color-stop(.75, rgba(255, 255, 255, .15)), color-stop(.75, transparent),
 to(transparent));
 background-image: -webkit-linear-gradient(135deg, rgba(255, 255, 255, .15) 25%, transparent 25%,
 transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%,
 transparent 75%, transparent);
 background-image: -moz-linear-gradient(135deg, rgba(255, 255, 255, .15) 25%, transparent 25%,
 transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%,
 transparent 75%, transparent);
 background-image: -ms-linear-gradient(135deg, rgba(255, 255, 255, .15) 25%, transparent 25%,
 transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%,
 transparent 75%, transparent);
 background-image: -o-linear-gradient(135deg, rgba(255, 255, 255, .15) 25%, transparent 25%,
 transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%,
 transparent 75%, transparent);
 background-image: linear-gradient(135deg, rgba(255, 255, 255, .15) 25%, transparent 25%,
 transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%,
 transparent 75%, transparent);            

 -webkit-animation: animate-stripes 3s linear infinite;
 -moz-animation: animate-stripes 3s linear infinite;
}

@-webkit-keyframes animate-stripes {
 0% {background-position: 0 0;} 100% {background-position: 60px 0;}
}

@-moz-keyframes animate-stripes {
 0% {background-position: 0 0;} 100% {background-position: 60px 0;}
}

.urt {
    border-radius: 4px;
    background: #3BA340;
    text-align: center;
    border-left: 2px #3BA340 solid;
    border-right: 2px #3BA340 solid;
}

.urv {
    border-radius: 4px;
    background: #E9473C;
    text-align: center;
    border-left: 2px #E9473C solid;
    border-right: 2px #E9473C solid;

}

.urp {
    border-radius: 4px;
    background: #F0B92D;
    text-align: center;
    border-left: 2px #F0B92D solid;
    border-right: 2px #F0B92D solid;
}

.urx {
    border-radius: 4px;
    background: #AC8BF1;
    text-align: center;
    border-left: 2px #AC8BF1 solid;
    border-right: 2px #AC8BF1 solid;
}
    
</style>
<?


$ban_f = $pdo->query("SELECT * FROM `ban_files` WHERE `id_user` = '$user[id]' AND `status` = '1' AND `type` = 'files' LIMIT 1")->fetch(PDO::FETCH_ASSOC);

if ($ban_f['status']==1)
{
header('location: /user/file/admin/ban_user.php');
}



### Проверка существует ли папка
if (isset($_GET['id']))$id=intval($_GET['id']);
$id_dir=intval($_GET['dir']);

if(isset($_GET['id']) && $pdo->query(("SELECT COUNT(*) FROM `soo` WHERE `id` = '".intval($_GET['id'])."' LIMIT 1"),0)->fetchColumn()==1)
{
$soo = $pdo->query(("SELECT * FROM `soo` WHERE `id` = '".intval($_GET['id'])."' LIMIT 1"))->fetch(PDO::FETCH_ASSOC);
include_once '../../../modules/groups/inc/ban.php';
$soo = $pdo->query(("SELECT * FROM `soo` WHERE `id` = '".intval($_GET['id'])."' LIMIT 1"))->fetch(PDO::FETCH_ASSOC);
$dir = $pdo->query("SELECT * FROM `soo_dir` WHERE `id` = '$id_dir' AND `id_soo` = '$soo[id]' LIMIT 1")->fetch(PDO::FETCH_ASSOC);


if(isset($_GET['dir']) && $pdo->query(("SELECT COUNT(*) FROM `soo_dir` WHERE `id` = '".intval($_GET['dir'])."' AND `id_soo`='$soo[id]' LIMIT 1"),0)->fetchColumn()==1)
{
$id = intval($_GET['dir']);    
}else{
$set['title']='Ошибка 404'; // заголовок страницы
include_once '../../../sys/inc/thead.php';    
    
err404(); 
include_once '../../../sys/inc/tfoot.php';

exit();
}

$soo = $pdo->query(("SELECT * FROM `soo` WHERE `id` = '".intval($_GET['id'])."' LIMIT 1"))->fetch(PDO::FETCH_ASSOC);
if($pdo->query(("SELECT COUNT(*) FROM `soo_bl` WHERE `id_soo` = '$soo[id]' AND `id_user`='$user[id]' LIMIT 1"),0)->fetchColumn()!=0)
{
$set['title']='Файл'; // заголовок страницы
include_once '../../../sys/inc/thead.php';

echo '<div class="list-group-item">'; 
echo '<div class="err">Вы добавлены в черный список группы и не можете просмотреть данный объект</div>';
echo '</div>'; 
}else{


$set['title']='Добавить файл'; // заголовок страницы
include_once '../../../sys/inc/thead.php';
only_reg();
$soo = $pdo->query(("SELECT * FROM `soo` WHERE `id` = '".intval($_GET['id'])."' LIMIT 1"))->fetch(PDO::FETCH_ASSOC);
$dir = $pdo->query("SELECT * FROM `soo_dir` WHERE `id` = '$id_dir' AND `id_soo` = '$soo[id]' LIMIT 1")->fetch(PDO::FETCH_ASSOC);

#Навигация
echo "<div class='card-header'>";
echo "<a href='/' data-toggle='tooltip' data-placement='right' title='" . lang('На главную') . "'><i class='fa fa-home fa-lg'></i></a> <i class='fa fa-angle-right fa-fw'></i> ";
echo "<a href='/modules/groups/group.php?id=$soo[id]'>$soo[name]</a> <i class='fa fa-angle-right fa-fw'></i> <a href='/modules/groups/file/index.php?id=$soo[id]'>";
echo lang('Файлы группы');
echo "</a> <i class='fa fa-angle-right fa-fw'></i> <a href='/modules/groups/file/dir.php?id=$soo[id]&dir=$dir[id]'>$dir[name]</a> <i class='fa fa-angle-right fa-fw'></i> Добавить файл</div>";

if($soo['private_file']==1 && $pdo->query(("SELECT COUNT(*) FROM `soo_users` WHERE `id_soo` = '$soo[id]' AND `id_user`='$user[id]' LIMIT 1"),0)->fetchColumn()==0 && $user['id']!=$soo['admid'])
{
   
echo '<div class="list-group-item">';   
echo '<center><img src="/style/info/12.png" style="width: 120px; height: 120px;"><br><br><b>Просматривать файлы группы могут только её участники</b></center>';
echo '</div>'; 
}else{


if($soo['private_fileadd']==0){
$fileadd = $pdo->query(("SELECT COUNT(*) FROM `soo_users` WHERE `id_soo` = '$soo[id]' AND `id_user`='$user[id]' LIMIT 1"),0)->fetchColumn()==0 && $user['id']!=$soo['admid'];
}elseif($soo['private_fileadd']==1){
$fileadd = $pdo->query(("SELECT COUNT(*) FROM `soo_users` WHERE `id_soo` = '$soo[id]' AND `id_user`='$user[id]' AND `mod` = '1' LIMIT 1"),0)->fetchColumn()==0 && $user['id']!=$soo['admid'];
}elseif($soo['private_fileadd']==2){
$fileadd = $pdo->query(("SELECT COUNT(*) FROM `soo` WHERE `id` = '$soo[id]' AND `admid` = '$user[id]' LIMIT 1"),0)->fetchColumn()==0 && $user['id']!=$soo['admid'];
}
if($soo['private_fileadd']==$soo['private_fileadd'] && $fileadd)
{}else{ 






echo "<div class=\"list-group-item\">";




function zam($am){return strtr($am, " .&", "___");}


if (isset($_GET['ok'])){
if (!isset($_FILES['file']))$err='Ошибка при выгрузке файла';
elseif (!isset($_FILES['file']['tmp_name']) || filesize($_FILES['file']['tmp_name'])>$disk)$err[]='Размер музыки превышает установленные ограничения';
else
{
$file=htmlspecialchars($_FILES['file']['name']);
$file=htmlspecialchars(preg_replace('(\#|\?)', NULL, $file));
$name=htmlspecialchars(preg_replace('#\.[^\.]*$#', NULL, $file)); // имя файла без расширения
$ras=htmlspecialchars(strtolower(preg_replace('#^.*\.#', NULL, $file)));
$imya=htmlspecialchars(zam($name));
$size=htmlspecialchars(filesize($_FILES['file']['tmp_name']));
$rasss=explode(';', $dir['ras_f']);
$ras_ok=false;
for($i=0;$i<count($rasss);$i++)
{
if ($rasss[$i]!=NULL && $ras==$rasss[$i])$ras_ok=true;
}

if (!$ras_ok)$err='Неверный формат файла';}

if (isset($_POST['metka']) && ($_POST['metka'] == '0' || $_POST['metka'] == '1'))$metka = $_POST['metka'];
else $metka = 0;

$opis=NULL;
if (isset($_POST['msg']))
$opis=stripslashes(htmlspecialchars(esc($_POST['msg'])));

if (utf8_strlen($opis)>300){$err='Описание не может превышать больше 300 символов';}



$file=htmlspecialchars($_FILES['file']['name']);
$file=htmlspecialchars(preg_replace('(\#|\?)', NULL, $file));
$name=htmlspecialchars(preg_replace('#\.[^\.]*$#', NULL, $file)); // имя файла без расширения
$ras=htmlspecialchars(strtolower(preg_replace('#^.*\.#', NULL, $file)));
$imya=htmlspecialchars(zam($name));

if ($pdo->query(("SELECT COUNT(*) FROM `soo_files` WHERE `dir` = '$id_dir' AND `name` = '$imya'"),0)->fetchColumn()!=0)
$err='Файл с таким названием уже есть в этой папке';

if (!isset($err)){
$soo = $pdo->query(("SELECT * FROM `soo` WHERE `id` = '".intval($_GET['id'])."' LIMIT 1"))->fetch(PDO::FETCH_ASSOC);
$id_dir=intval($_GET['dir']);

$pdo->query("INSERT INTO `soo_files` (`metka`, `dir`, `name`, `ras`, `size`, `time`, `id_user`, `id_soo`, `opis` )
VALUES ('$metka', '$id_dir', '$imya', '$ras', '$size', '$time', '$user[id]', '$soo[id]', '".htmlspecialchars($opis)."' )");
$id_file = $pdo->lastInsertId(); 



//////////////// лента ////////////////
$file_us = $pdo->query("SELECT * FROM `soo_users` WHERE `id_soo`='$soo[id]' AND `activate`='0' AND `invit`='0'");
while ($fil = $file_us->fetch(PDO::FETCH_BOTH))
{
   
$name2="добавил(а) файл в группе $soo[name]";
$lentams="[url=/modules/groups/file/file.php?id=$soo[id]&dir=$id_dir&id_file=$id_file] $imya [/url]";
$pdo->query("INSERT INTO `lenta` (`id_user`, `id_kont`, `msg`, `name`, `type`, `time`) values('$user[id]', '$fil[id_user]', '".mysql_real_escape_string($lentams)."', '".htmlspecialchars($name2)."', 'group', '$time')");
}
////////////////////////////////////////// 

$name23="добавил(а) файл в группе $soo[name]";
$lentams1="[url=/modules/groups/file/file.php?id=$soo[id]&dir=$id_dir&id_file=$id_file] $imya [/url]";
$pdo->query("INSERT INTO `lenta` (`id_user`, `id_kont`, `msg`, `name`, `type`, `time`) values('$user[id]', '$soo[admid]', '".mysql_real_escape_string($lentams1)."', '".htmlspecialchars($name23)."', 'group', '$time')");

////////////////////////////////////////// 

$mod = $pdo->query("SELECT * FROM `soo_users` WHERE `id_soo`='$soo[id]' AND `mod`='1'")->fetch(PDO::FETCH_BOTH);
$name24="добавил(а) файл в группе $soo[name]";
$lentams2="[url=/modules/groups/file/file.php?id=$soo[id]&dir=$id_dir&id_file=$id_file] $imya [/url]";
$pdo->query("INSERT INTO `lenta` (`id_user`, `id_kont`, `msg`, `name`, `type`, `time`) values('$user[id]', '$mod', '".mysql_real_escape_string($lentams2)."', '".htmlspecialchars($name24)."', 'group', '$time')");

////////////////////////////////////////// 


if (!@copy(htmlspecialchars($_FILES['file']['tmp_name']), H."files/groups/files/$id_file.$ras"))
{
$pdo->query("DELETE FROM `soo_files` WHERE `id` = '$id_file' LIMIT 1");
$err[]='Ошибка при выгрузке файла';
}

///////////////////////////////////////работа с файлом///////////////////////////
if ($df['rezjim']==0){
$_SESSION['message'] = 'Файл успешно выгружен';    
$soo = $pdo->query(("SELECT * FROM `soo` WHERE `id` = '".intval($_GET['id'])."' LIMIT 1"))->fetch(PDO::FETCH_ASSOC);
header("location: dir.php?id=".$soo['id']."&dir=".$id_dir.""); 
}else{
$path_get = 'groups/files'; //путь к папке на сервере 2
$ras_get = $ras; //расширение файла
$id_get = $id_file; //идентификатор файла
$dir_get = 'http://facefree.ru/files/groups/files/'; //путь к файлу на сервере 1


if( $curl = curl_init() ) {
curl_setopt($curl, CURLOPT_URL, ''.$df['name'].'/receiver.php?id='.$id_get.'&path='.$path_get.'&ras='.$ras_get.'&dir='.$dir_get.'&key='.$df['key'].'');
curl_setopt($curl, CURLOPT_RETURNTRANSFER,true);
$out = curl_exec($curl);

if ($out == '0'){
$_SESSION['err'] = 'Что-то пошло не так. Попробуйте ещё раз'; 
$pdo->query("DELETE FROM `soo_files` WHERE `id` = '$id_file' LIMIT 1");
unlink(htmlspecialchars($_SERVER['DOCUMENT_ROOT']).'/files/groups/files/'.$id_get.'.'.$ras_get.'');
$soo = $pdo->query(("SELECT * FROM `soo` WHERE `id` = '".intval($_GET['id'])."' LIMIT 1"))->fetch(PDO::FETCH_ASSOC);
header("location: upload.php?id=".$soo['id']."&dir=".$id_dir.""); 
}elseif ($out == '1'){
$_SESSION['err'] = 'Недопустимый формат файла'; 
$pdo->query("DELETE FROM `soo_files` WHERE `id` = '$id_file' LIMIT 1");
unlink(htmlspecialchars($_SERVER['DOCUMENT_ROOT']).'/files/groups/files/'.$id_get.'.'.$ras_get.'');
$soo = $pdo->query(("SELECT * FROM `soo` WHERE `id` = '".intval($_GET['id'])."' LIMIT 1"))->fetch(PDO::FETCH_ASSOC);
header("location: upload.php?id=".$soo['id']."&dir=".$id_dir."");
}elseif ($out == '2'){
unlink(htmlspecialchars($_SERVER['DOCUMENT_ROOT']).'/files/groups/files/'.$id_get.'.'.$ras_get.'');    
$_SESSION['message'] = 'Файл успешно выгружен'; 
$soo = $pdo->query(("SELECT * FROM `soo` WHERE `id` = '".intval($_GET['id'])."' LIMIT 1"))->fetch(PDO::FETCH_ASSOC);
header("location: dir.php?id=".$soo['id']."&dir=".$id_dir."");    
}else{
$_SESSION['err'] = 'Неизвестная ошибка. Файловый сервер временно не может принять выгрузку файлов';
$pdo->query("DELETE FROM `soo_files` WHERE `id` = '$id_file' LIMIT 1");
unlink(htmlspecialchars($_SERVER['DOCUMENT_ROOT']).'/files/groups/files/'.$id_get.'.'.$ras_get.'');
$soo = $pdo->query(("SELECT * FROM `soo` WHERE `id` = '".intval($_GET['id'])."' LIMIT 1"))->fetch(PDO::FETCH_ASSOC);
header("location: upload.php?id=".$soo['id']."&dir=".$id_dir.""); 
}

curl_close($curl);
}
}
/////////////////////////////////////////////////////////////////////////////////




}}
err();
aut();





echo "<form enctype=\"multipart/form-data\" name='message' action='?id=".htmlspecialchars($_GET['id'])."&amp;dir=".htmlspecialchars($id_dir)."&amp;ok' method=\"post\">
	
<b>Папка: <font color='#D59435'><i class='fa fa-folder fa-lg'></i></font> ".htmlspecialchars($dir['name'])."</b><br/><br/>

<b>Выберите файл</b> <font color='gray'><small>(Не более ".size_file($disk).")</small></font> :<br />
<input class='form-control' style='width:50%;' name='file' type='file'/><br />
<b>Описание</b> <font color='gray'><small>(300 символов)</small></font> :<br />
<textarea class='form-control' name='msg'></textarea><br />";

echo "<label><input type='checkbox' name='metka' value='1' /> Метка <font color=red>18+</font></label><br /><br />

<button class='knopka' name=''><i class='fa fa-upload fa-fw'></i>  Загрузить</button><br /><br />";
echo "<b>Допустимый размер выгружаемых файлов:</b><br><br>";

if ($pdo->query(("SELECT COUNT(*) FROM `disk` WHERE `id_user` = '".$user['id']."' AND `status` = '1' LIMIT 1"), 0)->fetchColumn()){
?>
 <span style="width: 10%; color: gray;"><small><b><font color=orange>60MB</font> / 60MB</b></small></span> 
<div class="progress-bar blue stripes">
<span style="width: 100%"></span>
</div><br>
<?
}else{
if ($user['rating'] >= 0 && $user['rating'] <= 19){
?>
 <span style="width: 10%; color: gray;"><small><b><font color=green>5MB</font> / 60MB</b></small> <span class='urt'><span style='position: relative;bottom: 2px;'><font color='white'><font size='-2px'>3 уровень</font></font></span></span></span> 
<div class="progress-bar blue stripes">
<span style="width: 10%"></span>
</div><br>
<?
}

if ($user['rating'] >= 20 && $user['rating'] <= 49){
?>
 <span style="width: 10%; color: gray;"><small><b><font color=green>20MB</font> / 60MB</b></small> <span class='urv'><span style='position: relative;bottom: 2px;'><font color='white'><font size='-2px'>2 уровень</font></font></span></span></span> 
<div class="progress-bar blue stripes">
<span style="width: 25%"></span>
</div><br>
<?
}

if ($user['rating'] >= 50 && $user['rating'] <= 119){
?>
 <span style="width: 10%; color: gray;"><small><b><font color=green>30MB</font> / 60MB</b></small> <span class='urp'><span style='position: relative;bottom: 2px;'><font color='white'><font size='-2px'>1 уровень</font></font></span></span></span> 
<div class="progress-bar blue stripes">
<span style="width: 50%"></span>
</div><br>
<?
}

if ($user['rating'] >= 120 && $user['rating'] <= 999999999999999999999){
?>
 <span style="width: 10%; color: gray;"><small><b><font color=green>30MB</font> / 60MB</b></small></span> 
<div class="progress-bar blue stripes">
<span style="width: 50%"></span>
</div><br>
<?
}
}
echo "<small>Объем дискового пространства: <b>не ограничен</b></small><BR><BR>";

echo "<small>Для 3 уровня аккаунтов доступно - <b>5MB</b><BR>";
echo "Для достигших 2 уровень доступно - <b>20MB</b><BR>";
echo "Для достигших 1 уровень доступно - <b>30MB</b><BR>";
echo "Для аккаунтов подключивших услугу <b>Размер выгружаемых файлов</b> доступно - <font color=orange><b>60MB</b></font> / <a href='/modules/shop/disk.php'>Подключить услугу</a></small><BR><BR>";


echo "<div class=\"mess\">Разрешается выгружать файлы в форматах: ".toOutput($dir['ras_f'])."</div></form>\n";


echo "</div>";
}}
}
}
else
{
$set['title']='Ошибка 404'; // заголовок страницы
include_once '../../../sys/inc/thead.php';    
    
err404(); 
}
}else{
echo "<div class='list-group-item'><div class='err'>Выгрузка файлов временно недоступна по техническим причинам</div></div>";
}






include_once '../../../sys/inc/tfoot.php';
?>