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:
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;
}