core/api/modules/fast-edit/ajax.php

73 lines
3.9 KiB
PHP
Executable File

<?php
switch( @$_POST['act'] ) {
/* 05.05.2021 Загрузка фотографий */
case 'foto_upload':
if ( $_FILES['file']['tmp_name'] ){
if ( preg_match( '/[.](jpg)|(jpeg)|(JPG)|(JPEG)$/', $_FILES['file']['name'] ) ){
/* 06.05.2021 вычисляем контрольную сумму чтобы дважды не загружать одно и то же */
unset($id);
$md5['md5'] = md5_file( $_FILES['file']['tmp_name'] );
/* ищем в базе - есть ли оно */
$db -> free_sql2( 'ALTER TABLE `foto_img` ADD `md5` varchar(100) NULL' );
$id = $db -> get_val( 'foto_img', $md5, 'id' );
if ( $id )die( 'Уже есть такое' );
@mkdir( MYDIR . '/img/albums', 0700 );
@mkdir( MYDIR . '/img/albums/' . $_SESSION['user_id'], 0700 );
@mkdir( MYDIR . '/img/albums/' . $_SESSION['user_id'] . '/' . $_SESSION['album_id'], 0700 );
@mkdir( MYDIR . '/img/albums/' . $_SESSION['user_id'] . '/' . $_SESSION['album_id'] . '/big', 0700 );
@mkdir( MYDIR . '/img/albums/' . $_SESSION['user_id'] . '/' . $_SESSION['album_id'] . '/original', 0700 );
require_once MYDIR . '/api/php/genpass.php';
$img_name = generate_password( 15 );
$source = $_FILES['file']['tmp_name'];
$target_original = MYDIR . '/img/albums/' . $_SESSION['user_id'] . '/' . $_SESSION['album_id'] . '/original/' . $img_name . '.jpg';
$target_big = MYDIR . '/img/albums/' . $_SESSION['user_id'] . '/' . $_SESSION['album_id'] . '/big/' . $img_name . '.jpg';
$target_small = MYDIR . '/img/albums/' . $_SESSION['user_id'] . '/' . $_SESSION['album_id'] . '/' . $img_name . '.jpg';
copy( $source, $target_original );
require_once MYDIR . '/api/php/img2.php';
rimg ( $target_original, 640, 480, $target_small, $zip=60, $c=0 );
rimg ( $target_original, 1280, 720, $target_big, $zip=60, $c=0 );
unset( $a );
$db -> free_sql2( 'ALTER TABLE `foto_img` ADD `size` varchar(20) NULL' );
$a['img'] = $img_name;
$a['user_id'] = $_SESSION['user_id'];
$a['album_id'] = $_SESSION['album_id'];
$a['size'] = $_FILES['file']['size'];
$a['md5'] = $md5['md5'];
$a['t'] = time();
echo $img_name;
$db -> add( 'foto_img', $a );
}
}
break;
/* 05.05.2021 Удаление фотографий */
case 'del_foto':
$dostup = 0; //запрещаем что то делать
//проверяем авторство фотографии
unset( $a );
$a['id'] = $_POST['id'];
$user_id = $db -> get_val( 'foto_img', $a, 'user_id' );
if ( $_SESSION['user_id'] == $user_id ) $dostup = 1;
if ( $_SESSION['dostup'] == 'a' || $_SESSION['dostup'] == 'm' ) $dostup = 1;
if ( $dostup == 0 ) die( "Кыш!" );
$img = $db -> get_val( 'foto_img', $a, 'img' );
unlink( MYDIR . '/img/albums/' . $_SESSION['user_id'] . '/' . $_SESSION['album_id'] . '/original/' . $img . '.jpg' );
unlink( MYDIR . '/img/albums/' . $_SESSION['user_id'] . '/' . $_SESSION['album_id'] . '/big/' . $img . '.jpg' );
unlink( MYDIR . '/img/albums/' . $_SESSION['user_id'] . '/' . $_SESSION['album_id'] . '/' . $img . '.jpg' );
unlink( MYDIR . '/img/albums/' . $_SESSION['user_id'] . '/' . $_SESSION['album_id'] . '/250/' . $img . '.jpg' );
$db -> del_id( 'foto_img', $a['id'] );
break;
/* 05.05.2021 обновление описания фото, аудит-контента
06.05.2021 проверка авторства вынесена в ядро
*/
case 'update':
if ( $db -> check_access ( 'foto_img', $_POST['id'] ) ==0 ) die( 'Нельзя!' );
if ($_POST['t2']=='longtext')
$db -> free_sql2( 'ALTER TABLE `foto_img` ADD `' . $_POST['t'] . '` longtext NULL' );
else
$db -> free_sql2( 'ALTER TABLE `foto_img` ADD `' . $_POST['t'] . '` varchar(250) NULL' );
$db -> free_sql( "UPDATE `foto_img` SET `" . $_POST['t'] . "` = '" . $_POST['txt'] . "' WHERE `id` = " . $_POST['id'] . ";" );
break;
default:
}