Как я могу извлечь файлы в моем контроллере, отправленные как почтовый файл от почтальона - PullRequest
0 голосов
/ 17 мая 2019

Я хочу загрузить набор файлов в хранилище Azure-BLOB-объектов. Я должен передать файлы в формате zip при вызове метода загрузки внутри контроллера (я использую почтальон для этого вызова). Хотя я получаю сжатые данныевнутри контроллера я не могу извлечь файлы из этих сжатых данных.

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

enter image description here

 [HttpPost]
    public HttpResponseMessage PostFiles()
    {

        var zipfile = Request.Form.Files;
        ..... 

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

Пожалуйста, предоставьте решение о том, потребуется ли какой-либо третьей стороне DLL для извлечения деталей отдельных файлов внутри zip-файла, или эту проблему можно решить без какого-либо стороннего инструмента.

Ответы [ 2 ]

1 голос
/ 17 мая 2019

Я думаю, что вы можете просто сделать следующее:

string ZipPath = Path.GetFullPath("myfile.zip"));
//ZipPath is "C:\temp\Demo\myfile.zip"

ZipArchive zipFile = ZipFile.Open(ZipPath, ZipArchiveMode.Read);
ZipArchiveEntry fileFromArchive = zipFile.GetEntry(FileName);

И используйте это пространство имен:

using System.IO.Compression;
0 голосов
/ 17 мая 2019

Как насчет использования SharpZipLib ? Выглядит достаточно просто в использовании и содержит большое количество документации и примеров.

...