<?php
if (isset($_POST['cfms']))
{
$antiflood = DB :: $pdo -> querySingle("SELECT COUNT(*) FROM `{$table}` WHERE `id_user` = ? AND `time` > ?;", array($user['id'], time()-10));
if (empty($antiflood)) {
if (@$_POST['access'] == $user['access']){
if ($imgc = @imagecreatefromstring(file_get_contents($_FILES['myFile']['tmp_name']))) {
$name = system :: check($_FILES['myFile']['name']);
$name = preg_replace('/(#|\?)/i', NULL, $name);
$ras = strtolower(preg_replace('/^.*\./i', NULL, $name));
$name = preg_replace('/\.[^\.]*$/i', NULL, $name);
$size = filesize($_FILES['myFile']['tmp_name']);
$desc = $_POST['file_descr'];
$img_x = imagesx($imgc);
$img_y = imagesy($imgc);
$PATH = system :: photosGetLink(false,$user['id']);
system :: createDir(system :: $photosDir.$PATH);
$lu = FILES_PATH.system :: $photosDir.$PATH;
if ($_FILES['myFile']['size'] < 5000000) {
if ($ras!=NULL || $ras!=$name || preg_match("#^([A-z0-9\-\_\(\)\ ])+$#ui", $ras)){
if ($img_y > 200 && $img_x > 200) {
$key = rand(1000000, 10000000);
$info = getimagesize($_FILES['myFile']['tmp_name']);
$width = $info[0];
$height = $info[1];
$type = ".jpg";
if(@imagejpeg($imgc, $_FILES['myFile']['tmp_name'])) {
$image = new image;
$timeu = time();
$keyk = md5("photos://".$user['id']."/".$data['id']."/".$timeu."/".$key);
// 1080
if ($width > 1080 || $height > 1080) {
$image->load($_FILES['myFile']['tmp_name']);
$image->preview($width,$height,1080);
$image->save($lu.$keyk."_1080x".$type);
} else {
$image->load($_FILES['myFile']['tmp_name']);
$image->save($lu.$keyk."_1080x".$type);
}
// 512
if ($width > 512 || $height > 512) {
$image->load($_FILES['myFile']['tmp_name']);
$image->preview($width,$height,512);
$image->save($lu.$keyk."_512x".$type);
} else {
$image->load($_FILES['myFile']['tmp_name']);
$image->save($lu.$keyk."_512x".$type);
}
// 256
if ($width > 256 || $height > 256) {
$image->load($_FILES['myFile']['tmp_name']);
$image->preview($width,$height,256);
$image->save($lu.$keyk."_256x".$type);
} else {
$image->load($_FILES['myFile']['tmp_name']);
$image->save($lu.$keyk."_256x".$type);
}
// Квадрат.
$image->load($_FILES['myFile']['tmp_name']);
if($width != $height) {
$image->preview2($width,$height,150);
$image->crop(array(0,0,150,150));
} else {
$image->resize(150,150);
}
$image->save($lu.$keyk."_150x".$type);
// Фото 128x128
if ($width > 128 || $height > 128) {
$image->load($_FILES['myFile']['tmp_name']);
//$image->resize(128,128);
$image->preview($width,$height,128);
$image->save($lu.$keyk."_128x".$type);
} else {
$image->load($_FILES['myFile']['tmp_name']);
$image->save($lu.$keyk."_128x".$type);
}
// Фото 64x64
$image->load($_FILES['myFile']['tmp_name']);
if($width != $height) {
$image->preview2($width,$height,64);
$image->crop(array(0,0,64,64));
} else {
$image->resize(64,64);
}
$image->save($lu.$keyk."_64x".$type);
// default
$image->load($_FILES['myFile']['tmp_name']);
$image->save($lu.$keyk.$type);
$desc = mb_substr(system :: text($_POST['desc']), 0, 300,'UTF-8');
DB :: $pdo -> query("INSERT INTO `{$table}` (`id_user`, `time`, `hash`, `id_album`, `size`, `width`, `height`,`desc`) VALUES (?,?,?,?,?,?,?,?);", array($user['id'], time(), $PATH.$keyk, $data['id'], $size, $width, $height, $desc));
$id = DB :: $pdo -> lastInsertId();
DB :: $pdo -> query("UPDATE `users` SET `count_photos` = `count_photos`+1 WHERE `id` = ? LIMIT 1;", array($user['id']));
DB :: $pdo -> query("UPDATE `{$table_a}` SET `count` = `count`+1, `last_photo` = ? WHERE `id` = ? LIMIT 1;", array($keyk, $data['id']));
if(AJAX) { die(json_encode(['link'=>$thisLink."{$user['id']}/view{$id}"])); }
system::redirect("Фотография успешно добавлена.", $thisLink."{$user['id']}/view{$id}");
exit();
} else { $e = "Изображение имеет запрещенный формат."; }
} else { $e = 'Слишком маленький размер фото, загружайте фото размером более чем 200х200.'; }
} else { $e = 'Неверное расширение.'; }
} else { $e = 'Выбранное вами фото имеет размер более 5 Мб.'; }
} else { $e = 'Выбранный Вами формат изображения не поддерживается.'; }
} else { $e = 'Вероятно вам подсунули эту ссылку.'; }
} else { $e = 'Не так быстро'; }
if(AJAX) { die(json_encode(['error'=>$e])); }
}
$back = system :: back("{$thisLink}{$data['id_user']}/album{$data['id']}", "Альбом");
$title = "Фотографии - Добавление фотографии";
$l = "Фотографии - Добавление фотографии";
require (CORE.'head.php');
system :: show($e);
?>
<div class="app-block">
<form id="data-upload-form" method="post" enctype="multipart/form-data">
<div class="list">
<div id="data-upload-load">
<label for="myFile"><div class="_center _gray">
<?=language::text('textphoto', $language, 'photo');?>
</div></label>
<div>
<input type="hidden" name="access" value="<?=$user['access']?>">
<input name="myFile" type="file" id="myFile" accept="image/*">
</div>
</div>
<div id="data-upload-file" style="display: none;">
<div class="_font-s" style="margin-bottom: 10px;">
<a prevent="1" href="#" class="_fl-r data-upload-cancel">Отменить</a>
<span class="_bold _upper">Загрузка фотографии</span>
</div>
<div class="_m-top _oh">
<div class="post-l">
<div class="photos-upload-file-mini">
</div>
</div>
<div class="post-c">
<textarea placeholder="Введите описание к фотографии.." name="desc"></textarea>
</div>
</div>
<div style="display: none;" class="photos-upload-file-progress"><div class="app-progress-bar"><span class="app-progress-bar">0%</span><div><span></span></div></div></div>
</div>
<div style="margin-top: 15px;margin-bottom: 5px;" class="photos-upload-file-submit"><input type="submit" class="main-btn _w-100" name="cfms" value="Загрузить"></div>
</div>
</form>
<?php
echo $back;
echo "</div>";
require (CORE.'foot.php');