<?php defined('ACCESS') OR die('No direct script access...');
/**
 * Author - koder_alex
 * ISQ - 669906617
 * VK - https://vk.com/koder_alex
 * It is forbidden to give, sell, modify.
 */
$data = [];
if ((!isset($_SESSION['attachments' . $peer['id']]) && !is_array($_SESSION['attachments' . $peer['id']])) || $_SESSION['attachments' . $peer['id']]['hash'] != $hash) {
    $data['error'] = 'Ошибка при загрузке фото...';
}
$execSQL = ['image', '0', $user['id'], $peer['id']];
$q = DB::$pdo->prepare("SELECT folder, name, tmp_name, extension FROM mail_files_vk WHERE `folder` = ? AND `action` = 'prepare' AND `id_mail` = ? AND `id_user` = ? AND `id_kont` = ? LIMIT " . $config['max_uploads_file']);
$q->execute($execSQL);
$countFile = $q->rowCount();
$q->closeCursor();
if ($countFile >= $config['max_uploads_file']) {
    $data['error'] = 'Вы загрузили максимальное количество файлов на одно сообщение.';
}
if (!(array_key_exists('photo', $_FILES) === true || empty($_FILES['photo']['tmp_name']) === false)) {
    $data['error'] = 'Ошибка при загрузке фото...';
}
$item = $_FILES['photo'];
/**
 * Получаем тип файла
 */
$fileType = mime_content_type($item['tmp_name']);
$fileType = explode('/', $fileType);
$fileType = array_shift($fileType);
if ($fileType != 'image') {
    $data['error'] = 'К загрузке разрешены только изображения...';
}
if (count($data) == 0) {
    $file = array(
        'folder' => explode('/', $item['type']),
        'name' => explode('.', $item['name'])
    );
    $file = array(
        'folder' => array_shift($file['folder']),
        'name' => array_shift($file['name']),
        'extension' => array_pop($file['name']),
    );
    $file['tmp_name'] = md5_file($item['tmp_name']) . '.' . $file['extension'];
    if (!is_dir(FILES_PATH . 'mail/files/' . $file['folder']))
        mkdir(FILES_PATH . 'mail/files/' . $file['folder']);

    /**
     * Запрещаем доступ к папкам которые не входят в этот список
     * лучше не менять, только хуже сделаете
     */
    if (in_array($fileType, array('audio', 'video', 'image')) === false && is_readable(FILES_PATH . 'mail/files/' . $file['folder'] . '/.htaccess') === false)
        file_put_contents(FILES_PATH . 'mail/files/' . $file['folder'] . '/.htaccess', 'Deny From All');

    if (!in_array($file['tmp_name'], array_diff(scandir(FILES_PATH . 'mail/files/' . $file['folder']), array('..', '.'))))
        copy($item['tmp_name'], FILES_PATH . 'mail/files/' . $file['folder'] . '/' . $file['tmp_name']);
    DB::$pdo->query("INSERT INTO `mail_files_vk` (`id_user`, `id_kont`, `time`, `name`, `tmp_name`, `extension`, `folder`, `type`, `size`) values('" . $user['id'] . "', '" . $peer['id'] . "', '" . $time . "', '" . $file['name'] . "', '" . $file['tmp_name'] . "', '" . $file['extension'] . "', '" . $file['folder'] . "', '" . $item['type'] . "', '" . $item['size'] . "')");
    $data['src'] = '/mail/file/'.$file['folder'].'/' . $file['tmp_name'];
    $data['delete_url'] = '/mail/?act=files&type=delete&hash=' . $file['tmp_name'].'&ajax';
    unset($file);
}

setData($data);