<?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);