• Автор:

    Flesha
  • Добавлено:

    апр 21, 2014
  • Комментариев:

    0
  • Просмотров:

    1364

Хак Добавляем комментарии к архиву

Хак Добавляем комментарии к архиву

Данный хак позволяет добавлять вам комментарий к загружаемому на сервер ZIP архиву.

Возможности:
Выбор типа комментария архива:
- Добавление обычного комментария в архив;
- Добавление файла в архив, который лежит в корне сайта;
- Создание файла с комментарием;
- Возможность указать максимальный вес файла, который будем править, в Кб, чтобы ограничить нагрузку на сервер;

Установка:

Открыть engine/classess/uploads/upload.class.php, найти ~471 строка:
$uploaded_filename = $this->file->saveFile(ROOT_DIR . "/uploads/files/".FOLDER_PREFIX, $filename, $this->use_prefix);


Ниже вставить:
//Найстройка хака
$ZipArchiveOpt = array (
'type' => "1", // Тип (1 - Добавление обычного комментария в архив; 2 - Добавление файла в архив, который лежит в корне сайта; 3 - Создание файла с комментарием)
'size' => "10240", // Максимальный вес файла в Кб, чтобы ограничить нагрузку на сервер
'name' => "ReadMe.txt", // ReadMe.txt - имя файла, который будет создан
'file' => "ReadMe.txt", // ReadMe.txt - имя файла, который будет взят с папки uploads, в котором будет ваш комментарий
'comment' => "Архив скачан с сайта coderlaba.com", // Комментарий архива
);
if($ZipArchiveOpt['type'] == 1) {
if(stripos ( $filename, ".zip" ) AND ($size <= $ZipArchiveOpt['size']) AND (PHP 5 >= 5.2.0, PECL zip >= 1.1.0)) {
$data_url = ROOT_DIR . "/uploads/files/" . FOLDER_PREFIX .$uploaded_filename;
$zip = new ZipArchive;
if ($zip->open($data_url) === TRUE){
$zip->setArchiveComment($ZipArchiveOpt['comment']);
$zip->close();
}
}
} elseif ($ZipArchiveOpt['type'] == 2) {
if(stripos ( $filename, ".zip" ) AND ($size <= $ZipArchiveOpt['size']) AND (PHP 5 >= 5.2.0, PECL zip >= 1.1.0)) {
$data_url = ROOT_DIR . "/uploads/files/" . FOLDER_PREFIX .$uploaded_filename;
$data_urls = ROOT_DIR . "/uploads/" .$ZipArchiveOpt['file'];
$zip = new ZipArchive;
if ($zip->open($data_url, ZipArchive::CREATE) === TRUE){
$zip->addFile("{$data_urls}", "{$ZipArchiveOpt['file']}");
$zip->close();
}
}
} else {
if(stripos ( $filename, ".zip" ) AND ($size <= $ZipArchiveOpt['size']) AND (PHP 5 >= 5.2.0, PECL zip >= 1.1.0)) {
$data_url = ROOT_DIR . "/uploads/files/" . FOLDER_PREFIX .$uploaded_filename;
$zip = new ZipArchive;
if ($zip->open($data_url, ZipArchive::CREATE) === TRUE){
$zip->addFromString("{$ZipArchiveOpt['name']}","{$ZipArchiveOpt['comment']}");
$zip->close();
}
}
}


У кого возникнут проблемы с кодировкой.
Находим:
if($ZipArchiveOpt['type'] == 1 ) {


Вставляем выше:
$ZipArchiveOpt['comment'] = iconv("WINDOWS-1251", "UTF-8", $ZipArchiveOpt['comment']);


или
$ZipArchiveOpt['comment'] = iconv("UTF-8", "WINDOWS-1251", $ZipArchiveOpt['comment']);


Требования:
PHP 5: 5.2.0+
PECL zip: 1.1.0+

Автор: Qnut
Версия DLE: 9.x - 10.2
Вернуться
Информация
Посетители, находящиеся в группе Гости, не могут оставлять комментарии к данной публикации.