最近做上传图片功能时,遇到的一些问题,在这里记录一下,以便备忘
1.关于数据压缩的问题(压缩后byte[]数组的长度反而更大)
因为图片和网站是分开的,我这里上传图片用的是webservice,为了能够减少数据传输量,同时使用了数据解压缩,代码如下:
数据解压缩帮助类
1 public class DataCompressor 2 { 3 /// <summary> 4 /// 压缩 5 /// </summary> 6 /// <param name="decompressedData"></param> 7 /// <returns></returns> 8 public static byte[] Compress(byte[] decompressedData) 9 { 10 using (MemoryStream stream = new MemoryStream()) 11 { 12 DeflateStream stream3 = new DeflateStream(stream, CompressionMode.Compress, true); 13 stream3.Write(decompressedData, 0, decompressedData.Length); 14 stream3.Close(); 15 return stream.ToArray(); 16 } 17 } 18 /// <summary> 19 /// 解压缩 20 /// </summary> 21 /// <param name="compressedData"></param> 22 /// <returns></returns> 23 public static byte[] Decompress(byte[] compressedData) 24 { 25 using (MemoryStream stream = new MemoryStream(compressedData)) 26 { 27 using (DeflateStream stream3 = new DeflateStream(stream, CompressionMode.Decompress)) 28 { 29 return LoadToBuffer(stream3); 30 } 31 } 32 } 33 34 private static byte[] LoadToBuffer(Stream stream) 35 { 36 using (MemoryStream stream2 = new MemoryStream()) 37 { 38 int num; 39 byte[] buffer = new byte[0x400]; 40 while ((num = stream.Read(buffer, 0, buffer.Length)) > 0) 41 { 42 stream2.Write(buffer, 0, num); 43 } 44 return stream2.ToArray(); 45 } 46 }