Перейти к содержимому

Zipfile api как включить

  • автор:

По api получен zip-файл. Как его обработать? Php

По api нужно получить данные, и они приходят в архиве. На скрине видно, что в ответе отображаются кракозябры. Если нажать на «Save response», то архив корректно сохраняется. Как кодом сохранить этот архив в php? Спасибо. content-type: application/zip content-type: application/zip

Отслеживать
задан 17 дек 2021 в 12:12
5 3 3 бронзовых знака

2 ответа 2

Сортировка: Сброс на вариант по умолчанию

Получить данные запросом на указанный API (curl, Guzzle, любой другой вариант), сохранить в переменную $content , сохранить как файл с помощью file_put_contents(‘путь/архив.zip’, $content)

Отслеживать
ответ дан 17 дек 2021 в 12:24
1,000 5 5 серебряных знаков 13 13 бронзовых знаков

Я для скачивания в браузере использую такой трюк: На сервере:

echo ' '; 
$.ajax(< url, method: 'POST', data, success: function (data) < $('#downloaded-files').html(data); $('#downloaded-files a').each(function () < this.click(); >) > >); 

Отслеживать
ответ дан 17 дек 2021 в 12:20
Виктор Карев Виктор Карев
1,543 1 1 золотой знак 7 7 серебряных знаков 11 11 бронзовых знаков

  • php
  • api
  • zip
    Важное на Мете
Похожие

Подписаться на ленту

Лента вопроса

Для подписки на ленту скопируйте и вставьте эту ссылку в вашу программу для чтения RSS.

Дизайн сайта / логотип © 2024 Stack Exchange Inc; пользовательские материалы лицензированы в соответствии с CC BY-SA . rev 2024.1.3.2953

Нажимая «Принять все файлы cookie» вы соглашаетесь, что Stack Exchange может хранить файлы cookie на вашем устройстве и раскрывать информацию в соответствии с нашей Политикой в отношении файлов cookie.

Как открыть ZIP-файл на Android?

ZIP — это формат архивации файлов и сжатиях данных без потерь. Такой формат удобен для передачи множества файлов, а уменьшенный размер станет дополнительным плюсом. Сжатие файлов, как правило, происходит с помощью алгоритма Deflate. Android не способен открывать данный формат «из коробки», поэтому единственным решением станет использование сторонних приложений в Google Play. Однако какое из них наилучшее и проверенное?

Как открыть ZIP-файл на Android? Фото.

Ранее Google выпустила приложение Files — это файловый менеджер. С его помощью можно в том числе открывать ZIP-архивы. Для этого скачиваем приложение по ссылке ниже. После установки открываем его, переходим в раздел «Просмотры». Если файл расположен в «Загрузках», можно сразу открыть категорию «Скачанные файлы». В нашем случае ZIP-архив был скачан с Telegram, поэтому переходим во внутреннюю память, ищем папку «Telegram», далее переходим к «Telegram Documents». В данной папке должен располагаться скачанный файл. Если нажать на него, приложение предложит извлечь файлы архива, после нажатия на «Продолжить» откроется небольшое окно с предпросмотром документов.

Как открыть ZIP-файл на Android? Фото.Как открыть ZIP-файл на Android? Фото.

Нажимаем на «Готово», после чего произойдет распаковка архива в папку с аналогичным названием.

Files — крайне удобное и полезное приложение от Google

В разделе «Обмен» можно делиться видео, приложениями и другими данными с людьми поблизости, у которых установлено данное решение.

Отдельного внимания заслуживает интерфейс, выполненный в стиле Material Design второй версии со шрифтами Google Sans. Главное окно Files отображает количество используемой памяти и анализирует хранилище на наличие ненужных файлов. Чуть ниже отображаются дубликаты, кэш приложений с изображениями и видеороликами, скачанные и большие файлы. Простыми словами, Google Files, помимо поддержки ZIP-файлов, понравится многими другими возможностями. Рекомендуем!

Приложение: Google Files: освободите место на телефоне Разработчик: Google LLC Категория: Инструменты Версия: 1.0.224103129 Цена: Бесплатно Скачать: Google Play Приложением уже заинтересовались: 0 человек

Оставить комментарий в Telegram. Поделитесь мнением в чате читателей Androidinsider.ru

Теги

  • Google Play
  • Операционная система Android
  • Приложения для Андроид

Наши соцсети

Новости, статьи и анонсы публикаций

Zip File. Create From Directory Метод

Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.

Создает ZIP архив, содержащий файлы и каталоги из указанного каталога.

Перегрузки

Создает ZIP-архив в указанном потоке, содержащий файлы и каталоги из указанного каталога.

Создает ZIP архив, содержащий файлы и каталоги из указанного каталога.

Создает ZIP-архив в указанном потоке, который содержит файлы и каталоги из указанного каталога, использует указанный уровень сжатия и при необходимости включает базовый каталог.

Создает ZIP-архив, содержащий файлы и каталоги из указанного каталога, использует указанный уровень сжатия и необязательно включает базовый каталог.

Создает ZIP-архив в указанном потоке, который содержит файлы и каталоги из указанного каталога, использует указанный уровень сжатия и кодировку символов для имен записей и при необходимости включает базовый каталог.

Создает ZIP-архив, содержащий файлы и каталоги из указанного каталога, использует указанный уровень сжатия и кодировку символов для имен записей и необязательно включает базовый каталог.

CreateFromDirectory(String, Stream)

Создает ZIP-архив в указанном потоке, содержащий файлы и каталоги из указанного каталога.

public: static void CreateFromDirectory(System::String ^ sourceDirectoryName, System::IO::Stream ^ destination);
public static void CreateFromDirectory (string sourceDirectoryName, System.IO.Stream destination);
static member CreateFromDirectory : string * System.IO.Stream -> unit
Public Shared Sub CreateFromDirectory (sourceDirectoryName As String, destination As Stream)
Параметры

sourceDirectoryName String

Путь к архивируемому каталогу, заданный как относительный или абсолютный путь. Относительный путь интерпретируется относительно текущего рабочего каталога.

destination Stream

Поток, в котором хранится ZIP-архив.

Исключения

sourceDirectoryName имеет значение Empty, содержит только пробел или по крайней мере один недопустимый символ.

Поток destination не поддерживает запись.

Параметр sourceDirectoryName или destination имеет значение null .

В sourceDirectoryName указанном пути имя файла или и то, и другое превышает максимальную длину, определенную системой.

Параметр sourceDirectoryName недопустим или не существует (например, он соответствует неподключенному диску).

Не удалось открыть файл в указанном каталоге.

При открытии архивного файла произошла ошибка ввода-вывода.

sourceDirectoryName содержит недопустимый формат.

Комментарии

Структура каталогов из файловой системы сохраняется в архиве. Если каталог пуст, создается пустой архив. Эта перегрузка метода не включает базовый каталог в архив и не позволяет указать уровень сжатия. Если вы хотите включить базовый каталог или указать уровень сжатия, вызовите перегрузку CreateFromDirectory(String, Stream, CompressionLevel, Boolean) метода. Если файл в каталоге не удается добавить в архив, архив остается неполным и недопустимым, а метод создает IOException исключение.

Применяется к

CreateFromDirectory(String, String)

Создает ZIP архив, содержащий файлы и каталоги из указанного каталога.

public: static void CreateFromDirectory(System::String ^ sourceDirectoryName, System::String ^ destinationArchiveFileName);
public static void CreateFromDirectory (string sourceDirectoryName, string destinationArchiveFileName);
static member CreateFromDirectory : string * string -> unit
Public Shared Sub CreateFromDirectory (sourceDirectoryName As String, destinationArchiveFileName As String)
Параметры

sourceDirectoryName String

Путь к архивируемому каталогу, заданный как относительный или абсолютный путь. Относительный путь интерпретируется относительно текущего рабочего каталога.

destinationArchiveFileName String

Путь создаваемого архива, заданный как относительный или абсолютный путь. Относительный путь интерпретируется относительно текущего рабочего каталога.

Исключения

Параметр sourceDirectoryName или destinationArchiveFileName является Empty, содержит только пробелы или хотя бы один недопустимый символ.

Параметр sourceDirectoryName или destinationArchiveFileName имеет значение null .

В sourceDirectoryName или destinationArchiveFileName длина указанного пути, имени файла или обоих параметров превышает установленное в системе максимальное значение.

Параметр sourceDirectoryName недопустим или не существует (например, он соответствует неподключенному диску).

destinationArchiveFileName уже существует.

Не удалось открыть файл в указанном каталоге.

При открытии архивного файла произошла ошибка ввода-вывода.

Параметр destinationArchiveFileName задает каталог.

Вызывающий код не имеет необходимого разрешения на доступ к каталогу, указанному в sourceDirectoryName , или к файлу, указанному в destinationArchiveFileName .

sourceDirectoryName или destinationArchiveFileName содержит недопустимый формат.

ZIP-архив не поддерживает запись.

Примеры

В этом примере показано, как создать и извлечь ZIP-архив с помощью ZipFile класса . Он сжимает содержимое папки в ZIP-архив, а затем извлекает это содержимое в новую папку. Чтобы использовать класс ZipFile, укажите в проекте ссылку на сборку System.IO.Compression.FileSystem .

using System; using System.IO.Compression; class Program < static void Main(string[] args) < string startPath = @".\start"; string zipPath = @".\result.zip"; string extractPath = @".\extract"; ZipFile.CreateFromDirectory(startPath, zipPath); ZipFile.ExtractToDirectory(zipPath, extractPath); >> 
open System.IO.Compression let startPath = @".\start" let zipPath = @".\result.zip" let extractPath = @".\extract" ZipFile.CreateFromDirectory(startPath, zipPath) ZipFile.ExtractToDirectory(zipPath, extractPath) 
Imports System.IO.Compression Module Module1 Sub Main() Dim startPath As String = ".\start" Dim zipPath As String = ".\result.zip" Dim extractPath As String = ".\extract" ZipFile.CreateFromDirectory(startPath, zipPath) ZipFile.ExtractToDirectory(zipPath, extractPath) End Sub End Module 

Комментарии

Структура каталогов из файловой системы сохраняется в архиве. Если каталог пуст, создается пустой архив. Эта перегрузка метода не включает базовый каталог в архив и не позволяет указать уровень сжатия. Если вы хотите включить базовый каталог или указать уровень сжатия, вызовите перегрузку CreateFromDirectory(String, String, CompressionLevel, Boolean) метода.

Если архив уже существует, IOException создается исключение. Если запись с указанным именем уже существует в архиве, создается вторая запись с идентичным именем.

Если файл в каталоге не удается добавить в архив, архив остается неполным и недопустимым, а метод создает IOException исключение.

Применяется к

CreateFromDirectory(String, Stream, CompressionLevel, Boolean)

Создает ZIP-архив в указанном потоке, который содержит файлы и каталоги из указанного каталога, использует указанный уровень сжатия и при необходимости включает базовый каталог.

public: static void CreateFromDirectory(System::String ^ sourceDirectoryName, System::IO::Stream ^ destination, System::IO::Compression::CompressionLevel compressionLevel, bool includeBaseDirectory);
public static void CreateFromDirectory (string sourceDirectoryName, System.IO.Stream destination, System.IO.Compression.CompressionLevel compressionLevel, bool includeBaseDirectory);
static member CreateFromDirectory : string * System.IO.Stream * System.IO.Compression.CompressionLevel * bool -> unit
Public Shared Sub CreateFromDirectory (sourceDirectoryName As String, destination As Stream, compressionLevel As CompressionLevel, includeBaseDirectory As Boolean)
Параметры

sourceDirectoryName String

Путь к архивируемому каталогу, заданный как относительный или абсолютный путь. Относительный путь интерпретируется относительно текущего рабочего каталога.

destination Stream

Поток, в котором хранится ZIP-архив.

compressionLevel CompressionLevel

Одно из значений перечисления, указывающее, акцентировать ли внимание на скорости или эффективности сжатия при создании записи.

includeBaseDirectory Boolean

Значение true , чтобы включить имя каталога из параметра sourceDirectoryName в корень архива; значение false , чтобы включать только содержимое этого каталога.

Исключения

sourceDirectoryName имеет значение Empty, содержит только пробел или по крайней мере один недопустимый символ.

Поток destination не поддерживает запись.

Параметр sourceDirectoryName или destination имеет значение null .

В sourceDirectoryName указанном пути имя файла или и то, и другое превышает максимальную длину, определенную системой.

Параметр sourceDirectoryName недопустим или не существует (например, он соответствует неподключенному диску).

Не удалось открыть файл в указанном каталоге.

При открытии архивного файла произошла ошибка ввода-вывода.

sourceDirectoryName содержит недопустимый формат.

compressionLevel не является допустимым значением CompressionLevel.

Комментарии

Структура каталогов из файловой системы сохраняется в архиве. Если каталог пуст, создается пустой архив. Используйте эту перегрузку метода, чтобы указать уровень сжатия и указать, следует ли включать базовый каталог в архив. Если файл в каталоге не удается добавить в архив, архив остается неполным и недопустимым, а метод создает IOException исключение.

Применяется к

CreateFromDirectory(String, String, CompressionLevel, Boolean)

Создает ZIP-архив, содержащий файлы и каталоги из указанного каталога, использует указанный уровень сжатия и необязательно включает базовый каталог.

public: static void CreateFromDirectory(System::String ^ sourceDirectoryName, System::String ^ destinationArchiveFileName, System::IO::Compression::CompressionLevel compressionLevel, bool includeBaseDirectory);
public static void CreateFromDirectory (string sourceDirectoryName, string destinationArchiveFileName, System.IO.Compression.CompressionLevel compressionLevel, bool includeBaseDirectory);
static member CreateFromDirectory : string * string * System.IO.Compression.CompressionLevel * bool -> unit
Public Shared Sub CreateFromDirectory (sourceDirectoryName As String, destinationArchiveFileName As String, compressionLevel As CompressionLevel, includeBaseDirectory As Boolean)
Параметры

sourceDirectoryName String

Путь к архивируемому каталогу, заданный как относительный или абсолютный путь. Относительный путь интерпретируется относительно текущего рабочего каталога.

destinationArchiveFileName String

Путь создаваемого архива, заданный как относительный или абсолютный путь. Относительный путь интерпретируется относительно текущего рабочего каталога.

compressionLevel CompressionLevel

Одно из значений перечисления, указывающее, акцентировать ли внимание на скорости или эффективности сжатия при создании записи.

includeBaseDirectory Boolean

Значение true , чтобы включить имя каталога из параметра sourceDirectoryName в корень архива; значение false , чтобы включать только содержимое этого каталога.

Исключения

Параметр sourceDirectoryName или destinationArchiveFileName является Empty, содержит только пробелы или хотя бы один недопустимый символ.

Параметр sourceDirectoryName или destinationArchiveFileName имеет значение null .

В sourceDirectoryName или destinationArchiveFileName длина указанного пути, имени файла или обоих параметров превышает установленное в системе максимальное значение.

Параметр sourceDirectoryName недопустим или не существует (например, он соответствует неподключенному диску).

destinationArchiveFileName уже существует.

Не удалось открыть файл в указанном каталоге.

При открытии архивного файла произошла ошибка ввода-вывода.

Параметр destinationArchiveFileName задает каталог.

Вызывающий код не имеет необходимого разрешения на доступ к каталогу, указанному в sourceDirectoryName , или к файлу, указанному в destinationArchiveFileName .

sourceDirectoryName или destinationArchiveFileName содержит недопустимый формат.

ZIP-архив не поддерживает запись.

Примеры

В этом примере показано, как создать и извлечь ZIP-архив с помощью ZipFile класса . Он сжимает содержимое папки в ZIP-архив, а затем извлекает это содержимое в новую папку. При сжатии архива включается базовый каталог и устанавливается уровень сжатия, чтобы повысить скорость операции, а не эффективность. Чтобы использовать класс ZipFile, укажите в проекте ссылку на сборку System.IO.Compression.FileSystem .

using System; using System.IO; using System.IO.Compression; namespace ConsoleApplication < class Program < static void Main(string[] args) < string startPath = @"c:\example\start"; string zipPath = @"c:\example\result.zip"; string extractPath = @"c:\example\extract"; ZipFile.CreateFromDirectory(startPath, zipPath, CompressionLevel.Fastest, true); ZipFile.ExtractToDirectory(zipPath, extractPath); >> > 
open System.IO.Compression let startPath = @"c:\example\start" let zipPath = @"c:\example\result.zip" let extractPath = @"c:\example\extract" ZipFile.CreateFromDirectory(startPath, zipPath, CompressionLevel.Fastest, true) ZipFile.ExtractToDirectory(zipPath, extractPath) 
Imports System.IO Imports System.IO.Compression Module Module1 Sub Main() Dim startPath As String = "c:\example\start" Dim zipPath As String = "c:\example\result.zip" Dim extractPath As String = "c:\example\extract" ZipFile.CreateFromDirectory(startPath, zipPath, CompressionLevel.Fastest, True) ZipFile.ExtractToDirectory(zipPath, extractPath) End Sub End Module 

Комментарии

Структура каталогов из файловой системы сохраняется в архиве. Если каталог пуст, создается пустой архив. Используйте эту перегрузку метода, чтобы указать уровень сжатия и указать, следует ли включать базовый каталог в архив.

Если архив уже существует, IOException создается исключение. Если запись с указанным именем уже существует в архиве, создается вторая запись с идентичным именем.

Если файл в каталоге не удается добавить в архив, архив остается неполным и недопустимым, а метод создает IOException исключение.

Архивирование и распаковка ZIP архивов в PowerShell

date

03.05.2021

user

itpro

directory

PowerShell, Windows 10, Windows Server 2016

comments

комментариев 10

Вы можете использовать возможности PowerShell для создания zip архивов и их распаковки. В версии PowerShell 5.0 (установлен по умолчанию в Windows 10) доступен отдельный модуль Microsoft.PowerShell.Archive. В более старых версиях Windows для архивирования можно использовать класс ZipFile из .NET Framework

В модуле Microsoft.PowerShell.Archive (C:\Windows\System32\WindowsPowerShell\v1.0\Modules\Microsoft.PowerShell.Archive) есть всего два командлета:

Get-Command -Module Microsoft.PowerShell.Archive | Format-Table -AutoSize;

CommandType Name Version Source ----------- ---- ------- ------ Function Compress-Archive 1.0.0.0 Microsoft.PowerShell.Archive Function Expand-Archive 1.0.0.0 Microsoft.PowerShell.Archive

modul powershell archive в windows 10 powershell для работы с zip архивами

Рассмотрим примеры использования этих командлетов для создания и распаковки ZIP архивов в ваших PowerShell скриптах.

Как создать ZIP архив в PowerShell с помощью Compress-Archive?

Команда Compress-Archive имеет следующий синтаксис:

Compress-Archive [-Path] String[] [-DestinationPath] String [-CompressionLevel String ] [-Update]

  • В параметре Path задаются путь к файлам или каталогам, которые нужно заархивировать;
  • DestinationPath – указывает местоположение создаваемого ZIP файла;
  • CompressionLevel – задает уровень сжатия (NoCompression, Optimal или Fastest);
  • Update — позволяет добавить/обновить файлы в уже существующем ZIP архиве;
  • Force — если архив с указанным именем уже существует, он будет перезаписан.

Совет. Уровень сжатия NoCompression, как правило, стоит использовать при объединении в единый ZIP файл уже сжатых файлов (jpg, msi, mp3 и пр.). В этом случае, Windows не будет тратить время на их сжатие.

Чтобы заархивировать один файл, выполните:

Compress-Archive -Path «C:\Logs\WindowsUpdate.log» -DestinationPath C:\Archive\updatelog.zip -CompressionLevel Optimal

powershell архивация zip файлов с помощью командлета Compress-Archive

Можно заархивировать все содержимое нескольких каталогов (все файлы и подкаталоги):

Compress-Archive -Path C:\Logs\,C:\Logs2\ -DestinationPath C:\Archive\logs-all.zip -CompressionLevel Optimal

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

Можно добавить в ZIP архив только файлы с определенной маской. Например, следующая команда запакует только файлы с расширением *.txt.

Compress-Archive -Path C:\Logs\*.txt -DestinationPath C:\Archive\logs-txt.zip –CompressionLevel Fastest

С помощью Get-ChildItem можно использовать более сложные фильтры. Например, следующий скрипт позволит найти на диске топ 10 самых больших файлов с расширением *.docx или *.xlsx и добавит их в архив:

Get-ChildItem c:\docs -Include *.xlsx –Recurse| sort -descending -property length | select -first 10 |Compress-Archive -DestinationPath C:\temp\officefiles.zip

Чтобы добавить в существующий zip архив новые файлы, используйте ключ Update:

Compress-Archive -Path C:\Logs\,C:\logs2\ –Update -DestinationPath C:\Archive\logs-txt.zip

Примечание. Т.к. модуль Microsoft.PowerShell.Archive использует вызовы класса System.IO.Compression.ZipArchive, не получится сжать файл, размером больше 2 Гб. При попытке сжать файл большего размера появится ошибка:

Ошибка создания архива 2 Гб

Exception calling "Write" with "3" argument(s): "Stream was too long." At C:\Windows\system32\WindowsPowerShell\v1.0\Modules\Microsoft.PowerShell.Archive\Microsoft.PowerShell.Archive.psm1:805 char:29 + . $destStream.Write($buffer, 0, $numberOfBytesRead) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : NotSpecified: (:) [], MethodInvocationException + FullyQualifiedErrorId : IOException

Как распаковать ZIP архив в PowerShell с Expand-Archive?

Для разархивирования ZIP файлов можно использовать командлет ExpandArchive.
Синтаксис командлета аналогичный:

Expand-Archive [-Path] String [-DestinationPath] String [-Force] [-Confirm]

Например, чтобы распаковать созданный нами ранее ZIP-архив в указанный каталог с перезаписью файлов, выполните:

Expand-Archive -Path C:\Scripts\test1.zip -DestinationPath c:\scripts -Force

Expand-Archive

Из недостатков модуля архивирования PowerShell стоит отметить:

  • Нельзя просмотреть содержимое архива без его распаковки;
  • Нельзя извлечь из архива часть файлов (придется распаковать архив целиком);
  • Нельзя использовать другие форматы архивов, кроме zip;
  • Нельзя защитить zip архив с паролем.

В более сложных случаях для выполнения архивации в ваших PowerShell скриптах нужно использовать сторонние утилиты. Например, 7zip или модуль 7Zip4Powershell. Например, следующая команда позволит распаковать zip файл, защищенный паролем:

Install-Module -Name 7Zip4Powershell
Expand-7Zip -ArchiveFileName C:\PS\Logs.zip -Password «P@$$dr0w» -TargetPath C:\Temp\NewLogs

Архивирование в PowerShell с помощью класса ZipFile

Сначала загрузите класс в свою сессию PowerShell:

Add-Type -AssemblyName «System.IO.Compression.FileSystem»

Чтобы заархивировать каталог, используйте такой скрипт:

$SourceFolder = ‘C:\Logs’
$ZipFileName = ‘C:\PS\logs.zip’
[IO.Compression.ZipFile]::CreateFromDirectory($SourceFolder, $ZipFileName)

использование кдасса ZipFile в powershell

Чтобы обновить ZIP архив и указать степень сжатия, используйте такой код PowerShell:

$addfile = ‘C:\temp\new.log’
$compressionLevel = [System.IO.Compression.CompressionLevel]::Fastest
$zip = [System.IO.Compression.ZipFile]::Open($zipFileName, ‘update’)[System.IO.Compression.ZipFileExtensions]::CreateEntryFromFile($zip, $addfile, (Split-Path $addfile -Leaf), $compressionLevel)$zip.Dispose()

Команда $zip.Dispose() используется чтобы закрыть zip файл.

Можно вывести содержимое ZIP архива:

получить содержимое zip архива в powershell

Или можно вывести содержимое zip архива в виде таблицы Out-GridView с указанием степени сжатия:

вывести файлы в zip архиве со степенью сжатия

Для разархивирования ZIP архива в каталог C:\Logs, используйте следующие команды:

Предыдущая статьяПредыдущая статья Следующая статья Следующая статья

Читайте далее в разделе PowerShell Windows 10 Windows Server 2016

page

page

page

Get-ADUser: получение информации о пользователях Active Directory из PowerShell

Внедряем User Profile Disks в Windows Server RDS

Отправка писем из Outlook с помощью VBA макроса или PowerShell

Get-ADComputer: получить информацию о компьютерах Active Directory через PowerShell

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *