0

I have a bunch of QR codes that are images generated and converted to byte arrays. I want to zip them up into an archive. I can't seem to get it right. Whenever I try to open it on my Mac it says:

enter image description here

Here is my code:

public async Task<PDFFileModel> GetRegistrantQRCodeZipFile(long conferenceId) {
    var model = new PDFFileModel();
    var registrants = await context.UserPackagePurchases.Where(x => x.Package.ConferenceId == conferenceId).Select(x => x.User).Distinct().ToListAsync();

    using (var outStream = new MemoryStream()) {

        using var archive = new ZipArchive(outStream, ZipArchiveMode.Create, true);
        foreach (var registrant in registrants.ToList()) {

            var qrCode = await userAppService.GetQRCode(registrant.Id);
            var bytes = ImageToByte2(qrCode);

            var fileInArchive = archive.CreateEntry($"{registrant.Id}-{registrant.FirstName} {registrant.LastName}.png", CompressionLevel.Optimal);
            using var entryStream = fileInArchive.Open();
            using var fileToCompressStream = new MemoryStream(bytes);
            fileToCompressStream.CopyTo(entryStream);
            fileToCompressStream.Flush();
        }

        var pdfbyets = outStream.ToArray();
        model.FileBytes = pdfbyets;
        model.FileName = "QRCodes.zip";

    }

    return model;
}
Chris Kooken
  • 32,730
  • 15
  • 85
  • 123

0 Answers0