0
以下行给出的问题解压缩邮件附件
content = new StreamReader(new GZipStream(new MemoryStream(a.RawBytes), CompressionMode.Decompress)).ReadToEnd();
InvalidDataException发生:神奇的数字在gzip头不正确 。确保你在GZip流中。
我可以不将附件转换为字节数组或我做错了什么?
Attachment a = (from x in mail.Attachments.OfType<Attachment>()
where !string.IsNullOrEmpty(x.Body) || x.RawBytes != null
select x).FirstOrDefault();
AttachmentName = a.Name;
string AttachmentType = a.Name.Substring(a.Name.Length - 3, 3).ToUpper();
switch (AttachmentType)
{
case "ZIP":
content = new StreamReader(new GZipStream(new MemoryStream(a.RawBytes), CompressionMode.Decompress)).ReadToEnd();
break;
default:
content = new StreamReader(new MemoryStream(a.RawBytes)).ReadToEnd();
break;
}
Gzip头部包含一个幻数(文件格式签名),这似乎不是一个Gzip文件,你试图解压缩... –
您是否在压缩时将任何额外的字节添加到实际的字节数组? – Rezoan